Sindbad~EG File Manager

Current Path : /usr/share/hplip/base/__pycache__/
Upload File :
Current File : //usr/share/hplip/base/__pycache__/module.cpython-310.pyc

o

�/�aHq�@sdddlZddlZddlZddlZddlTddlmZmZmZdZ	dZ
dZdZdZ
Gdd	�d	e�ZdS)
�N�)�*)�tui�utils�device��Fc@s�eZdZ			ddd�Z		ddd�Z				dd	d
�Zdd�Zddd�Zddd�Zdde	j
e	jddfdd�Ze	j
e	jdfdd�Z
d dd�Zdd�ZdS)!�ModuleNFcCs�||_||_||_||_||_t�d�t�|�g|_	|	|_
|
|_d|_d|_
tjdt_t�d�r8t�d�||_|durI||_t|j�|_ng|_d|_t�ddd�|_d|_g|_t�t�dd	d
��rt|j�t �|jd7_t�t�ddd
��r�|j�t!�|jd7_t�t�ddd
��r�|j�t"�|jd7_t#|_$d|_%|jdur�t&|jvr�tj'r�|jr�|j%d7_%t#|jvr�|j%d7_%t(|jvr�|j%d7_%|jdur�t#|jvr�t#|_$nt(|jvr�t(|_$|jdu�r�tj'�r�|j�r�|jd	k�rt!|jv�rt |jv�rt#|jv�rt#|_$d
|_n�t!|jv�r,|jdk�r,t!|jv�sPt |jv�r>|jd	k�r>t |jv�sPt"|jv�rT|jdk�rTt"|jv�rTt&|_$n�|jd	k�r�t |jv�r�t!|jv�rrt!|jv�rrd|_t&|_$t"|jv�r�t"|jv�r�d|_t&|_$n^t#|jv�r�t#|_$nTt(|jv�r�t(|_$nJt�)d|j�d|_
n>|jdk�r�t!|jv�r�t |jv�r�t |jv�r�d	|_t&|_$nt#|jv�r�t#|_$nt(|jv�r�t(|_$nt�)d|j�d|_
|j$|_*t�+�dk�r�|�s�t�,d|�dSdSdS)N�Fr�HPLIP_DEBUG�debug�	configurez
ui-toolkit�qt4�qt3�0r�qt5�nonez#%s cannot be run using Qt3 toolkit.Tz#%s cannot be run using Qt4 toolkit.z'%s should not be run as root/superuser.)-�mod�title�version�doc�
usage_data�os�umask�log�
set_module�args�quiet�
deprecated�	lock_file�help_only_support�sys�argv�prop�prog�getenv�	set_level�avail_modes�supported_ui_toolkits�len�num_supported_ui_toolkits�sys_conf�get�default_ui_toolkit�num_installed_ui_toolkits�installed_ui_toolkitsr�to_bool�append�UI_TOOLKIT_QT3�UI_TOOLKIT_QT4�UI_TOOLKIT_QT5�INTERACTIVE_MODE�default_mode�num_valid_modes�GUI_MODE�	gui_build�NON_INTERACTIVE_MODE�error�mode�getuid�warn)�selfrrrrrr'r(�run_as_root_okrr�rA�/usr/share/hplip/base/module.py�__init__(s�









$$$�zModule.__init__rcCs�|jr
|jdddfg|_ng|_d|jg}g}g}|t@tkr6|�d�|�tj�|�tj�|�tj�|j	durz|j
dkrz|�d�|�tj�|�tj�|j
dkrdt|j	vrdtjrd|�tj�t|j	vro|�tj�t|j	vrz|�tj�|�d�|�tj�|�tj�|j	dur�t|j	vr�|jdur�|jdkr�tjr�|j
dkr�t|jvr�t|jvr�|�tj�t|jvr�t|jvr�|�tj�t|jvr�t|jvr�|�tj�|�tj �|�tj!�|t"@t"kr�|�tj#�|�tj$�|du�r|D]}|�|�q�|t%@�r|�d	�|du�s|�r=|�tj�|�tj&�|D]}	|�|	��q$|du�r=|D]}	|�|	��q4|du�r]|�tj�|�tj'�|D]}
|�|
dd
df��qP|�(dd�)|�dd
df�|D]	}|j�|��qldS)N��nameTzUsage:z[DEVICE_URI|PRINTER_NAME]rz[MODE]z	[OPTIONS]z[FILES]�seealsoF� �summary)*rrr�USAGE_FLAG_DEVICE_ARGSr1r�
USAGE_ARGS�USAGE_DEVICE�
USAGE_PRINTERr'r7�USAGE_SPACE�
USAGE_MODEr.r8r#r9�USAGE_GUI_MODEr5�USAGE_INTERACTIVE_MODEr:�USAGE_NON_INTERACTIVE_MODE�
USAGE_OPTIONSr(r*r2r/�
USAGE_USE_QT3r3�
USAGE_USE_QT4r4�
USAGE_USE_QT5�USAGE_LOGGING1�USAGE_LOGGING2�USAGE_FLAG_SUPRESS_G_DEBUG_FLAG�USAGE_LOGGING3�
USAGE_HELP�USAGE_FLAG_FILE_ARGS�USAGE_NOTES�
USAGE_SEEALSO�insert�join)r?�
include_flags�
extra_options�extra_notes�
see_also_listrH�content�notes�e�n�s�crArArB�setUsage�s~






�





�zModule.setUsageTc
Csd}|sd�|dg�}gd�}|rd�|dg�}|�gd��|jdkr`t|jvr:tjr:d�|dg�}|�d	d
g�t|jvrMd�|dg�}|�dd
g�t|jvr`d�|dg�}|�gd��|j	dur�|j
dkr�tjr�|jdur�t|jvr�t|j	vr�t|jvr�|�ddg�t
|j	vr�t
|jvr�|�ddg�|dur�d�||g�}|dur�|�|�d}d}d}	d}
d}g}|j}
tjr�|j}nd}d}zt�tjdd�||�\}|_Wntjy�}z|jg}WYd}~�nQd}~ww|D�]H\}}|dvr�|}	q�|dv�r|}
q�|dv�r|����}t�|��sd
}q�|dv�r&t�d�q�|dv�rJ|jdu�rDt|jv�rD|j	du�rDtj�rDt}
q�|�d�q�|dv�r`|jdu�r_t|jv�r_t}
d}q�|dv�rv|jdu�rut|jv�rut}
d}q�|d v�r~d
}q�|d!k�r�d"}q�|d#k�r�d$}q�|d%k�r�d&}q�|d'k�r�d(}q�|d)v�r�|jdu�r�t|jv�r�|j	du�r�t|j	v�r�tj�r�t|jv�r�t}
d}q�|�d*|j�q�|d+v�r|jdu�rt|jv�r|j	du�r�t
|j	v�r�tj�r�t
|jv�r�t}
d}q�|�d,|j�q�|d-v�r<|jdu�r<t|jv�r<|j	du�r4t|j	v�r4tj�r4t|jv�r4t}
d.}q�|�d,|j�q�|�rBd
}|j�rf|�sL|�rX|dk�rW|�||�nt�t� d/|j��d
}n|dk�rq|�||�|du�r{t�!d�|
|_"||	|
|
||fS)0Nzl:hrD�g)zlogging=�helpz	help-restzhelp-manz	help-descr�dbgzd:p:P:)zdevice=zdevice-uri=zprinter=zprinter-namer�u�gui�ui�i�interactive�textrg)�noninteractiveznon-interactive�batchrrzuse-qt3rzuse-qt4Fr)z-dz--devicez--device-uri)z-Pz-pz	--printerz--printer-name)z-lz	--logging)z-gz--debugz--dbgr)z-uz--guiz--uizUnable to enter GUI mode.)z-iz
--interactivez--text)z-nz--non-interactivez--batch)z-hz--helpz--help-rest�restz
--help-man�manz--help-desc�descz--uiscanT)z--qt3z	--use-qt3z2%s does not support Qt3. Unable to enter GUI mode.)z--qt4z	--use-qt4z2%s does not support Qt4. Unable to enter GUI mode.)z--qt5z	--use-qt5rz
Please check usage '%s --help')#r_�extendr7r8r'r#r9r5r:r(r*r2r/r3r6r-�getoptr!r"r�GetoptError�msg�lower�striprr&r1rr4r �usage�info�bold�exitr<)r?�extra_params�extra_long_params�handle_device_printer�supress_g_debug_flag�params�long_params�opts�
show_usage�
device_uri�printer_name�uiscan�	error_msgr<�
ui_toolkit�langrf�o�a�	log_levelrArArB�parseStdOptss�




"��

�


�
�





�
�
�
�


zModule.parseStdOptsc	CsPt��}d|_tt���D]\}}|�|dd�|dd��f�q
|��dS)N)z
Language CodezAlternate Name(s)rz, r)	r�	Formatter�header�list�supported_locales�items�addr_�output)r?�f�loc�llrArArB�
showLanguages�s
"zModule.showLanguagesrscCs�|dur
|js|��dS|dkr|��t��|dkr$t|j�dSt�|j||j	|j
|j�|rB|D]}t�|�q5t
�d�t
�d�|dkrRt
�d�dSdS)Nrsrxrr)r�	showTitlerr��printrr�format_textrrrrr;r!r�)r?r�r�rfrArArBr�s$

�zModule.usagecCs�|js_t�d�|rt�t�dtj��nt�t�d��t�t�d|j|jf��t�d�t�d�t�d�t�d�t�d�t�d�|jrat�t�d	|j��t�d�dSdSdS)
NrDz.HP Linux Imaging and Printing System (ver. %s)z$HP Linux Imaging and Printing Systemz
%s ver. %sz0Copyright (c) 2001-18 HP Development Company, LPz0This software comes with ABSOLUTELY NO WARRANTY.z;This is free software, and you are welcome to distribute itz<under certain conditions. See COPYING file for more details.zZ%s support is deprecated. Feature can be used as is. Fixes or updates will not be provided)	rrr�r�r#rrrr>)r?�show_verrArArBr��s"






�zModule.showTitlec
Csvt�d|||||f�t�d|j�d}d|vrd}d}d}	d}
|dur<t�||�}t�|�|s<|r<t�d�dS|durT||vrGd}n
|rRt�d|�dSd}|dur�t�|�|D]<}t�|�t�|�\	}}
}}}}}}}t�d	||
|||||||f	�||}|��d
d�|D�vr�d}	|}}d}q_|	dur�t�d|�d}|r�dS|dur�|dur�|r�|}
n@|dur�|dur�|r�|	r�||kr�|}
n-t�d
||f�d\}}n|dur�|dur�|	r�t�||�}
nt	|�dkr�t
|���d}
|
du�rt	|��r|jtk�rt
�||�}
nt
|���d}
|
du�r't�dd|
�|
S|jttfv�r9t�d�t�d�|
S)aD Validate passed in parameters, and, if in text mode, have user select desired device to use.
            Used for tools that are device-centric and accept -d (and maybe also -p).
            Use the filter(s) to restrict what constitute valid devices.

            Return the matching device URI based on:
            1. Passed in device_uri if it is valid (filter passes)
            2. Corresponding device_uri from the printer_name if it is valid (filter passes) ('*' means default printer)
            3. User input from menu (based on bus and filter)

            device_uri and printer_name can both be specified if they correspond to the same device.

            Returns:
                device_uri|None
                (returns None if passed in device_uri is invalid or printer_name doesn't correspond to device_uri)
        z"getDeviceUri(%s, %s, %s, %s, , %s)�Mode=%sF�hpaioTN�*No device found that support this feature.�@'%s' device doesn't support this feature (or) Invalid device URIzXback_end=%s, is_hp=%s, bb=%s, model=%s, serial=%s, dev_file=%s, host=%s, zc=%s, port= %scS�g|]}|���qSrA�r})�.0�mrArArB�
<listcomp>-�z'Module.getDeviceUri.<locals>.<listcomp>�B'%s' device doesn't support this feature (or) Invalid printer namez=Printer name %s and device URI %s refer to different devices.)NNrr�	last_usedr�zANo device selected/specified or that supports this functionality.)rrr<r�getSupportedCUPSDevicesr;�parseDeviceURIr}�getDeviceURIByPrinterNamer)r��keysr5r�device_table�	user_conf�setr:r!r�)r?r�r��back_end_filter�filter�devices�restrict_to_installed_devices�
scan_uri_flag�
device_uri_ok�printer_name_ok�device_uri_ret�uri�back_end�is_hp�bb�model�serial�dev_file�host�zc�port�cups_printer�printer_name_device_urirArArB�getDeviceUri�s��



� ��
	�

zModule.getDeviceUricCs`t�d||||f�t�d|j�d}d}d}d}	t�||�}
t�|
�|
s/t�d�dS|durOt�||�}||vrBd}|}	n
t�d|�d}|rOdS|dur�|d	krpd
dlm}|�	�}
|
durh|
}n(t�d�d}n |�
�d
d�|
D�vr�d}t�|�}	n
t�d|�d}|r�dS|dur�|dur�|r�t||�dkr�||d
}n0|dur�|dur�|r�|r�||	kr�|}nt�d�n|dur�|dur�|r�|}n
t|
�dkr�|
d
}|dur�|jt
tfvr�t|
�r�t�|
�}|dur�|	dur�t�|�}	|	du�rt�dd|	�|du�rt�dd|�n|jt
tfv�r&t�d�t�d�nt�d�d||	fS)a� Validate passed in parameters, and, if in text mode, have user select desired printer to use.
            Used for tools that are printer queue-centric and accept -p (and maybe also -d).
            Use the filter(s) to restrict what constitute valid printers.

            Return the matching printer_name based on:
            1. Passed in printer_name if it is valid (filter passes) ('*' means default printer)
            2. From single printer_name of corresponding passed in device_uri (filter passes)
            3. User input from menu (CUPS printer list, filtered) [or if > 1 queue for device_uri]

            device_uri and printer_name can both be specified if they correspond to the same device.

            Returns:
                (printer_name|None, device_uri|None) (tuple)
                (returns None if passed in printer_name is invalid or device_uri doesn't correspond to printer_name)
        zgetPrinterName(%s, %s, %s, %s)r�FNr�)FNNTr�rr)�cupszCUPS default printer not setcSr�rAr�)r��prArArBr��r�z)Module.getPrinterName.<locals>.<listcomp>r�rz7Printer name and device URI refer to different devices.r�r�r�zBNo printer selected/specified or that supports this functionality.zNo printer selected/specified)rrr<r�getSupportedCUPSPrinterNamesr;r��prntr��getDefaultPrinterr}r�r)r5r:r�
printer_tabler�r�r!r�)r?r�r�r�r�r�r�r��printer_name_retr��printersr�r��default_printerrArArB�getPrinterName]s|


�
�






zModule.getPrinterNamerDcCsN|rt�d�|j|g�|�\}|_n
t�|j|�\}|_|s%t�d�dSdS)N�-r)r�lock_appr_rrr!r�)r?�suffix�suppress_error�okrArArB�lockInstance�s �zModule.lockInstancecCs|jdur
t�|j�dSdS)N)rr�unlock)r?rArArB�unlockInstance�s
�zModule.unlockInstance)NNNFFF)rNNN)NNTF)rsN)T)rDF)�__name__�
__module__�__qualname__rCrjr�r�rr�r�DEFAULT_BE_FILTER�DEFAULT_FILTERr�r�r�r�rArArArBr	's2
�
�`
�1
	

�i
�
g
r	)r!�rerzrrkrDrrr�USAGE_FLAG_NONErIrXr[r��objectr	rArArArB�<module>s

Sindbad File Manager Version 1.0, Coded By Sindbad EG ~ The Terrorists