HEX
Server: Apache
System: Linux scp1.abinfocom.com 5.4.0-216-generic #236-Ubuntu SMP Fri Apr 11 19:53:21 UTC 2025 x86_64
User: confeduphaar (1010)
PHP: 8.1.33
Disabled: exec,passthru,shell_exec,system
Upload Files
File: //lib/python3/dist-packages/CommandNotFound/__pycache__/CommandNotFound.cpython-38.pyc
U

��
b�?�@s�ddlmZmZddlZddlZddlZddlZddlZddlZddl	Z	ddl
Z
ddlZddlm
Z
e
jdkrtdZndZeejddd	�e�Zd
d�Zdd
�ZdZGdd�de�ZdS)�)�print_function�absolute_importN)�SqliteDatabase�3�gettextZugettextzcommand-not-foundT)Zfallbackcsvd��fdd�tt��d�D�}dd�|D�}dd�|D�}�fdd�|D�}�fdd�|D�}t||||�S)	zw
    return a set with spelling1 distance alternative spellings

    based on http://norvig.com/spell-correct.html
    z&abcdefghijklmnopqrstuvwxyz-_0123456789cs$g|]}�d|��|d�f�qS�N�)�.0�i)�wordr�A/usr/lib/python3/dist-packages/CommandNotFound/CommandNotFound.py�
<listcomp>#sz!similar_words.<locals>.<listcomp>�cSs$g|]\}}|r||dd��qS�rNr�r	�a�brrrr
$scSs<g|]4\}}t|�dkr||d|d|dd��qS)rr�N��lenrrrrr
%scs2g|]*\}}�D]}|r|||dd��qqSrr�r	rr�c��alphabetrrr
&s
cs&g|]\}}�D]}|||�qqSrrrrrrr
's)�ranger�set)r�sZdeletesZ
transposesZreplacesZinsertsr)rrr�
similar_wordssrcCsJz.t��}t�d�d|kp,t�d�d|kWStk
rDYdSXdS)N�sudorZadminF)�posix�	getgroups�grpZgetgrnam�KeyError)�groupsrrr�
user_can_sudo+s�r$z&/var/lib/command-not-found/commands.dbc@s�eZdZdZdZdZdZejZ	d*dd�Z
d+d	d
�Zdd�Zd
d�Z
dd�Zdd�Zdd�Zd,dd�Zdd�Zdd�Zdd�Zdd�Zd d!�Zd"d#�Zd$d%�Zd-d'd(�Zd)S).�CommandNotFoundz
programs.d�)z	/snap/binz/binz/usr/binz/usr/local/binz/sbinz	/usr/sbinz/usr/local/sbinz
/usr/gamesz
/usr/bin/snap�/usr/share/command-not-foundcCsN|��|_tj�t�r0t�ttj�r0tt�|_	nt
d��t�|_t�
�|_dS)NzCannot find database)�_getSourcesList�sources_list�os�path�exists�dbpath�access�R_OKr�db�FileNotFoundErrorr$r�geteuid�euid)�selfZdata_dirrrr�__init__Ks
zCommandNotFound.__init__�c	Csbg}|t|�kr|jks$n|St|�D]0}|�|�}|D]\}}}|�||||f�q>q,|S)z try to correct the spelling )r�max_lenr�get_packages�append)	r4rZmin_lenZpossible_alternatives�w�packages�package�ver�comprrr�spelling_suggestionsUs
z$CommandNotFound.spelling_suggestionscCs|j�|�Sr)r0�lookup�r4�commandrrrr8`szCommandNotFound.get_packagesc	
Csbg}g}tj�|j�s.t�d|j�ggfSz6ttj��"}tj	|jddd|g|dd�}W5QRXWn>tj
k
r�}zt�d|�ggfWY�Sd}~XYnXt�d|�zt�|�}Wn@tj
k
�r}zt�d	|�ggfWY�Sd}~XYnX|D]R}|d
|k�r8|�|d|d
|�d�f�n|�|d
|d|�d�f��q||fS)
Nz
%s not existszadvise-snapz
--format=jsonz	--commandT)�stderrZuniversal_newlinesz.calling snap advice-snap returned an error: %szgot %s from snap advise-snapzcannot decoding json: %sZCommandZSnapZVersion)r*r+r,�snap_cmd�logging�debug�open�devnull�
subprocessZcheck_outputZCalledProcessError�json�loadsZJSONDecodeErrorr9�get)	r4rBZexact_resultZmispell_resultrH�output�e�snaps�snaprrr�	get_snapscs:�� "zCommandNotFound.get_snapsc
CsbzDttj�t�dd�df���}dd�|D�W5QR�WSQRXWntk
r\gYSXdS)N�HOMEz/rootz.command-not-found.blacklistcSs g|]}|��dkr|���qS)�)�strip)r	�linerrrr
�sz0CommandNotFound.getBlacklist.<locals>.<listcomp>)rGr*�sep�join�getenv�IOError)r4Z	blacklistrrr�getBlacklist�s
&zCommandNotFound.getBlacklistc	Cs|z ddl}ddlm}|��Wnttfk
r<gYSXtg�}|dd�D]&}|jsP|jsP|j	D]}|�
|�qfqP|S)Nr)�SourcesListF)ZwithMatcher)�apt_pkgZaptsources.sourceslistr[Zinit�SystemError�ImportErrorrZdisabledZinvalid�comps�add)r4r\r[r)�sourceZ	componentrrrr(�s

zCommandNotFound._getSourcesListcCs�dtjkrdS|r�td�}tjdkr6t|�}dd�}n(||�}tjjr^t|t	�r^|�
tjj�}|��td�kr�|jdkr~d}nd	}d
||f}t
d|tjd�tj|��d
d�dS)NZ COMMAND_NOT_FOUND_INSTALL_PROMPTz Do you want to install it? (N/y)rcSs|Srr)�xrrr�<lambda>��z0CommandNotFound.install_prompt.<locals>.<lambda>�yrrS�sudo z%sapt install %sz%s��fileF)�shell)r*�environ�_�sys�version�input�stdin�encoding�
isinstance�str�decode�lowerr3�print�stdoutrI�call�split)r4Zpackage_name�promptZanswerZ	raw_inputZcommand_prefixZinstall_commandrrr�install_prompt�s"



zCommandNotFound.install_prompt�c
Cs�t|�t|�|kr\td|jd�ttd�|t|�f|jd�td|jd�|j��dSt|�t|�dk�r$td|jd�ttd�||jd�td|jd�|D]8\}}}|r�d|}nd}ttd�|||f|jd�q�|D]<\}}}	}|�rd|}nd}ttd	�|||f|jd�q�td|jd�t|�dk�rTttd
�|jd�nDt|�dk�r�|j�r�ttd�d|jd�nttd�d
|jd�td|jd�|j��dS)z3 print spelling suggestions for packages and snaps rSrgz6Command '%s' not found, but there are %s similar ones.Nr�%Command '%s' not found, did you mean:z (%s)z  command '%s' from snap %s%s�  command '%s' from deb %s%s�3See 'snap info <snapname>' for additional versions.zTry: %s <deb name>zsudo apt installzapt install)rru�	output_fdrk�flushr$)
r4r�mispell_packages�
mispell_snapsZmax_altrBrPr=r<r>rrr�print_spelling_suggestions�s:


z*CommandNotFound.print_spelling_suggestionscCs6t|jd�ttd�d|i|jd�t|jd�dS)Nrgz;Command '%(command)s' not found, but can be installed with:rB)rurrkrArrr�_print_exact_header�s��z#CommandNotFound._print_exact_headercCs�|�|�|d}|jdkr4td|d|jd�n@|jrRtd|d|jd�n"td|d|jd�ttd��td|jd�|j��dS)Nrzsnap install %srgzsudo snap install %s�Please ask your administrator.rS)r�r3rurr$rkr�)r4rBr;rOrPrrr�advice_single_snap_package�s

z*CommandNotFound.advice_single_snap_packagecCs�|�|�|jdkrBtd|dd|jd�|�|dd�n�|jrvtd|dd|jd�|�|dd�nVtd|dd|jd�ttd��|dd|jkr�ttd�|dd|jd�td|jd�|j��dS)	Nrzapt install %srgzsudo apt install %sr�rz1You will have to enable the component called '%s'rS)	r�r3rurrzr$rkr)r�)r4rBr;rOrrr�advice_single_deb_package�s

z)CommandNotFound.advice_single_deb_packagecCs|jdkr|jrdSdS)NrrfrS)r3r$)r4rrrr�szCommandNotFound.sudocCs(|�|�tdd�||D��}t|�D]�\}}d}|drj|dkr^t|�dkr^d|d}nd|d}|d|jkr�td	|��||d|f|jd
�q(td	|��||d|fdtd�|dd
|jd
�q(|j	dk�r|j
�std|jd
�ttd�|jd
�td|jd
�|j��dS)NcSsg|]}t|d��qS�rr�r	rrrrr
�sz<CommandNotFound.advice_multi_deb_package.<locals>.<listcomp>rSrr�  # version %s, or�  # version %srz%sapt install %-*s%srgz (z-You will have to enable component called '%s'�)z.Ask your administrator to install one of them.)r��max�	enumeraterr)rurrrkr3r$r�)r4rBr;rO�padr
r<r=rrr�advice_multi_deb_package�s 
$<z(CommandNotFound.advice_multi_deb_packagecCs�|�|�tdd�||D��}t|�D]d\}}d}|drj|dkr^t|�dkr^d|d}nd|d}td|��||d|f|jd	�q(td|jd	�ttd
�|jd	�td|jd	�|j��dS)NcSsg|]}t|d��qSr�rr�rrrr
sz>CommandNotFound.advice_multi_snap_packages.<locals>.<listcomp>rSrrr�r��%ssnap install %-*s%srgr~)	r�r�r�rrurrrkr�)r4rBr;rOr�r
rPr=rrr�advice_multi_snap_packages
s
$z*CommandNotFound.advice_multi_snap_packagesc	Cs0|�|�tdd�||D��}t|�D]X\}}d}|dr^|dkrRd|d}nd|d}td|��||d|f|jd	�q(|D]>}d}|d
r�d|d
}td|��||d|f|jd	�q�td|jd	�t|�d
k�rttd�|dd|jd	�nttd
�|jd	�td|jd	�|j��dS)NcSsg|]}t|d��qSr�rr�rrrr
sz?CommandNotFound.advice_multi_mixed_packages.<locals>.<listcomp>rSrrr�r�r�rgrz%sapt  install %-*s%sz+See 'snap info %s' for additional versions.r~)	r�r�r�rurrrrkr�)	r4rBr;rOr�r
rPr=r<rrr�advice_multi_mixed_packagess(
$$ z+CommandNotFound.advice_multi_mixed_packagesFc
sxdd��t��|jkrdS��d�rFtj���r@tj���g}q\g}n��fdd�|jD�}|�rR|�sRt|�dkr�tt	d��tj�
|d	��d
�|jd�n@tt	d�d
�i|jd�|D] }tdtj�
|��|jd�q�tt
|�t
t�dd��d���}t|�d	k�rNtt	d�d�
|�|jd�dd�
|�k�rNtt	d�|jd�dStj�d��srtj�d��srdS�|��k�r�dS�dk�r�td�tt	d��|jd�td�tt	d�d|jd�tt	d�d|jd�td�dS|���}|���\}}t�d||f�t|�d	k�rht|�d	k�rh|���}	t|	�d	k�sXt|�d	k�rB|��|	|�n�t|�d	k�r�t|�dk�r�|��||�n�t|�d	k�r�t|�d	k�r�|��||�n�t|�dk�r�t|�d	k�r�|��||�nVt|�dk�rt|�d	k�r|��||�n*t|�d	k�rBt|�d	k�rB|��||�t|�d	k�pvt|�d	k�pvt|�d	k�pvt|	�d	kS)z7 give advice where to find the given command to stderr cSs.tj�tj�||��o,tj�tj�||��S)z? helper that returns if a command is found in the given prefix )r*r+r,rW�isdir)�prefixrBrrr�
_in_prefix7s�z*CommandNotFound.advise.<locals>._in_prefixF�/csg|]}�|��r|�qSrr)r	r��r�rBrrr
Es
z*CommandNotFound.advise.<locals>.<listcomp>rz1Command '%(command)s' is available in '%(place)s'r)rBZplacergz:Command '%(command)s' is available in the following placesrBz * %s�PATHrS�:z_The command could not be located because '%s' is not included in the PATH environment variable.ZsbinzfThis is most likely caused by the lack of administrative privileges associated with your user account.z/usr/bin/aptz/usr/bin/aptitude�pythonr|r})�python3r�rS)r�zpython-is-python3rSTzgot debs: %s snaps: %s)rr7�
startswithr*r+r,�dirname�prefixesrurkrWr�listrrXrxrZr8rQrErFr?r�r�r�r�r�r�)
r4rBZignore_installedr�r�Zmissingr;rOr�r�rr�r�advise5sp
,"
�



�
�zCommandNotFound.adviseN)r')r6)r{)F)�__name__�
__module__�__qualname__Zprograms_dirr7r�rDrlrCrr5r?r8rQrZr(rzr�r�r�r�rr�r�r�r�rrrrr%8s*




#
r%)Z
__future__rrrr!rJrEr*�os.pathrrlrIZCommandNotFound.db.dbrrmZ_gettext_method�getattrZtranslationrkrr$r-�objectr%rrrr�<module>s$