3
NZi              /   @   s  d Z dZdZdZddlZddlZddlZddlZddlZddl	T ddl
mZmZmZmZmZ ddlmZ d	ej d
  d ZeddfddZejd yejeee edefZejejdde ddfd7d8gd ejddddg\ZZZZ Z!Z"ej#eeZesej$d
 ej%de  eZ&dZ'dZ(xeD ]\Z)Z*e)d9krye+e*j, Z&W n, e-e.fk
rz   ej/d e  eZ&Y nX e&d
k se&ekrej/d e  eZ&nBe)d:krdZ'n2e)d;kr,ye*d Z(W n e0k
r   dZ(Y nX q,W yej1eeZ2W n* e3k
r&   ej4d% ej$d
 Y nX z$ye2j5  e2j6  W n> e3k
r~ Z7 z ej4d&e7j8  ej$d
 W Y ddZ7[7X nX e2j9d' e:kr8ej%d( g Z;d
Z*xyLe+e2j<d)e*  Z=e+e2j<d*e*  Z>e2j<d+e*  Z?ej@d,e*e=e>e?f  W n e0k
r   P Y nX e;jAe*e>e=e?f e*d
7 Z*qW e;jBejCejDd- xe;D ]ZEeE\Z*Z>Z=Z?e2j<d.e*  ZFe2j<d/e*  ZGe2j<d0e*  ZHe2j<d1e*  ZIeFeJeKfkre>eLeMeNeOePeQeRfkrej%ejSeH ej%d2e?  ej%d3eI  eeGe=e&e'e( ej%d( n6ej%ejSeH ej%d2e?  ej%d3eI  ej%d( qDW nej4d4 ej$d
 W de2jT  X W n  eUk
r|   ej4d5 Y nX ej%d( ej%d6 dS )<z2.0zSupply Levels Utilityz	hp-levelszIDisplay bar graphs of current supply levels for supported HPLIP printers.    N)*)devicestatusutilstuimodule)cups      
   T/c             C   s  d| }|dkrd}t | | }t |}||d kr<|d }|r|ttttfkrbtjtjd  n|tt	fkrtjtjd  nd|t
tfkrtjtjd  nF|tkrtjtjd  n,|ttfkrtjtjd  n|tttfkrd	}|r|ttfkrtjd }tjd
| |  d	}|r:|ttfkr:tjd }tjdd|| d|| d  d| |f  d	}|rxtjd }tjd
t | |  d S )Ng      Y@g           ZtealZfusciaZyellowZbluebold -z%s%s%s%s (approx. %d%%)%s| reset)intZAGENT_TYPE_CMYZAGENT_TYPE_KCMZAGENT_TYPE_CYANZAGENT_TYPE_CYAN_LOWloginfoZcodesZAGENT_TYPE_MAGENTAZAGENT_TYPE_MAGENTA_LOWZAGENT_TYPE_YELLOWZAGENT_TYPE_YELLOW_LOWZAGENT_TYPE_BLUEZAGENT_TYPE_BLACKZAGENT_TYPE_BLACK_B8800ZAGENT_TYPE_LGZAGENT_TYPE_GZAGENT_TYPE_PG)agent_level
agent_typesizeZ
use_colorsbar_charZadjZbarcolor r   /usr/share/hplip/levels.pylogBarGraph+   sD      


r   zBar graph size:z.-s<size> or --size=<size> (current default=%d)optionFUse colored bar graphs:$-c or --color (default is colorized)Bar graph character:*-a<char> or --char=<char> (default is '/'))Zextra_optionszs:ca:zsize=r   zchar=zUsing device : %s
-s--sizez/Invalid size specified. Using the default of %d-c--color-a--charzError opening device. Exiting.z#Error opening device (%s). Exiting.zstatus-typer   zagent%d-typezagent%d-kindzagent%d-skuz.%d: agent_type %d agent_kind %d agent_sku '%s')keyzagent%d-healthzagent%d-levelzagent%d-desczagent%d-health-desczPart No.: %sz
Health: %sz)Status not supported for selected device.z	User exitzDone.)r    r!   r   F)r"   r#   r   F)r$   r%   )r&   r'   )r(   r)   )V__version__Z	__title____mod____doc__sysZgetoptZtimeoperatorosZbase.gbaser   r   r   r   r   Zprntr   ZttysizeZDEFAULT_BAR_GRAPH_SIZEr   r   Z
set_moduleZModuleZINTERACTIVE_MODEmodZsetUsageZUSAGE_FLAG_DEVICE_ARGSZparseStdOptsZoptsZ
device_uriZprinter_namemodeZ
ui_toolkitZlangZgetDeviceUriexitr   r   r   r   oar   strip	TypeError
ValueErrorwarnKeyErrorZDevicedErrorerroropenZqueryDeviceemsgZmqZSTATUS_TYPE_NONEZsorted_suppliesZdqr   Z
agent_kindZ	agent_skudebugappendsort
cmp_to_keyZ	levelsCmpxZagent_healthr   Z
agent_descZagent_health_descZAGENT_HEALTH_OKZAGENT_HEALTH_UNKNOWNZAGENT_KIND_SUPPLYZAGENT_KIND_HEAD_AND_SUPPLYZAGENT_KIND_TONER_CARTRIDGEZAGENT_KIND_MAINT_KITZAGENT_KIND_ADF_KITZAGENT_KIND_INT_BATTERYZAGENT_KIND_DRUM_KITr   closeKeyboardInterruptr   r   r   r   <module>   s   /












