HEX
Server: Apache/2.4.65 (Debian)
System: Linux kubikelcreative 5.10.0-35-amd64 #1 SMP Debian 5.10.237-1 (2025-05-19) x86_64
User: www-data (33)
PHP: 8.4.13
Disabled: NONE
Upload Files
File: //usr/share/dh-python/dhpython/__pycache__/depends.cpython-39.pyc
a

��:`�0�@stddlZddlmZddlmZmZddlmZmZddl	m
Z
mZddlm
Z
mZmZe�d�ZGdd	�d	�ZdS)
�N)�partial)�exists�join)�PKG_PREFIX_MAP�	MINPYCDEP)�parse_pydep�guess_dependency)�default�	supported�VersionRange�dhpythonc@sbeZdZdZddd�Zdd�Zdd	�Zd
d�Zdd
�Zdd�Z	dd�Z
dd�Zdd�Zdd�Z
dS)�Dependenciesz6Store relations (dependencies, etc.) between packages.�cpython3NcCs"||_||_|pi}|_|�d�|_}|r2dnd|_|dkrP|rHdnd|_n<|dkrh|r`dnd	|_n$|d
kr�|rxdnd
|_|r�dnd
|_|d
kr�|j|_|j|_n|jd|_|jd|_d|vp�d|vp�d|vp�d|vp�d|vp�d|vp�d|v|_	t
�|_g|_g|_
g|_g|_g|_dS)Nz-dbgzpython%s-dbgzpython%srzpython3-dbg�python3�cpython2zpython2-dbgZpython2�pypyzpypy-dbgz
pypy%s-dbgzpypy%s�:anyz
python-devzpython-all-devzpython2-devzpython2-all-devz
python2.7-devzpython3-devzpython3-all-dev)�impl�package�bdep�endswithZis_debug_package�	ipkg_vtpl�ipkg_tpl�ipkg_tpl_ma�ipkg_vtpl_ma�python_dev_in_bd�set�depends�
recommends�suggests�enhances�breaks�	rtscripts)�selfrrrZdbgpkg�r$�(/usr/share/dh-python/dhpython/depends.py�__init__"sH
������zDependencies.__init__cCs�t�|jd�}t|j�D]}|�|jd�|�|�qt|j�D]}|�|jd�|�|�q>t|j	�D]}|�|jd�|�|�qdt|j
�D]}|�|jd�|�|�q�t|j�D]}|�|jd�|�|�q�t|j�D]}|�
|j|�q�dS)zFill in debhelper's substvars.Zmiscz
{}:Dependsz
{}:Recommendsz{}:Suggestsz{}:Enhancesz	{}:BreaksN)r�getr�sortedrZaddsubstvarr�formatrrr r!r"Zadd_rtupdate)r#Zdh�prefix�ir$r$r%�	export_toGszDependencies.export_tocCs d|j|j|j|j|j|jfS)Nz#D=%s; R=%s; S=%s; E=%s, B=%s; RT=%s)rrrr r!r"�r#r$r$r%�__str__Ws
��zDependencies.__str__cCs|r||jvr|j�|�dS�N)r�add�r#�valuer$r$r%�depend\szDependencies.dependcCs|r||jvr|j�|�dSr/)r�appendr1r$r$r%�	recommend`szDependencies.recommendcCs|r||jvr|j�|�dSr/)rr4r1r$r$r%�suggestdszDependencies.suggestcCs|r||jvr|j�|�dSr/)r r4r1r$r$r%�enhancehszDependencies.enhancecCs|r||jvr|j�|�dSr/)r!r4r1r$r$r%�break_lszDependencies.break_cCs||jvr|j�|�dSr/)r"r4r1r$r$r%�rtscriptps
zDependencies.rtscriptc	s�t�d�j��j}�j}�j}�j}|j}|r�t|d|d|d|d|df�r�t|d|d|df�rv|}n|}|j	}	|j
}
|	|
kr���||	�d}	}
|	r���d||	f�|
rЈ�d||
f��jd	k�rJ|d�rJt
|d�}|d
}	|d}
|	t�j�k�r$��d||	f�|
t�j�k�rJ��d||
df��jd
k�r�|�d��r���d�dd�t
|d�D���|d�r�t
|d�}|d
}	|d}
|	t�j�k�r̈�d||	f�|
t�j�k�r��d||
df�|d�r�jtv�r��t�j�|dD](}��d|�jd
k�r<dndf��q t�j�}
t�j�}|d��D�]8\}}tdd�|�dg�D��}|D]0}||
v�r���||�nt�d||��q�tdd�|�dg�D���r��|�d}�j�rtt
|�dt���}|�r@��d||d
f���d||ddf�n4|�d��rt��d||f���d||df�|�d��rj�jtv�r���t�j�d}|�r�|dt|d
|dd�7}n�t|�dk�r�|d|d
7}n�|�d��r�|d|7}nn|�rl|d|7}|j	|j
k�r0��||j	�n<|j	�rL��d||j	f�|j
�rl��d||j
df�|j�pvgD]}|d|�dd�7}�qx��||f��qj|j|j|jd�}t t!�j�j"|j#d �}|j$�r�|d!D]b}t%�j|fd"�j"i|��}�fd#d$�|d%D��fd&d$�|d'D��fd(d$�|d)D��q�|d*D]n}t&|d+d,d-��H}|D]2}|�'d.��rb|d/d��(�}��||d0���qbWd�n1�s�0Y�qJ|j)�p�gD]}��||d0���q�|j*�p�gD]}��+||d0���q�|j,�pgD]}��-||d0���q|j.�p0gD]�}td1�j|�}t/|��sl|}t/|��slt�0d2|��q2t%�j|fd"�j"i|��}�fd3d$�|d%D��fd4d$�|d'D��fd5d$�|d)D��q2t���dS)6Nz&generating dependencies for package %s�compileZpublic_versZext_versZext_no_versionZshebangsz%s (>= %s~)z
%s (<< %s)rr����rZ	ext_soabi�|css|]}|�dd�VqdS)�-z-abi-N)�replace)�.0Zsoabir$r$r%�	<genexpr>�s�z%Dependencies.parse.<locals>.<genexpr>z%s%s�rZprivate_dirscss"|]}|jr|jjr|jVqdSr/)�version�minor�r@r+r$r$r%rA��zDdependency on %s (from shebang) ignored - it's not supported anymorecss|]}|jdurdVqdS)NT)rCrEr$r$r%rA�rFFz-V %s)�minver�maxverz -X '%s'�'z'\'')Zdepends_secZrecommends_secZsuggests_sec)rr�accept_upstream_versionszrequires.txtrcsg|]}��|��qSr$�r3rEr-r$r%�
<listcomp>�rFz&Dependencies.parse.<locals>.<listcomp>rcsg|]}��|��qSr$�r5rEr-r$r%rL�rFrcsg|]}��|��qSr$�r6rEr-r$r%rL�rFrzegg-info�rzutf-8)�encodingz
Requires: �
)�reqZdebianz!cannot find requirements file: %scsg|]}��|��qSr$rKrEr-r$r%rLrFcsg|]}��|��qSr$rMrEr-r$r%rLrFcsg|]}��|��qSr$rNrEr-r$r%rLrF)1�log�debugrrrrr�vrange�anyrGrHr3rr(r	r'rrr
�items�list�inforrr�lenZregexprr?r9Zdepends_sectionZrecommends_sectionZsuggests_sectionrrrrJ�
guess_depsr�open�
startswith�striprrr5rr6Zrequiresr�warn)r#ZstatsZoptionsZtplZvtplZtpl_maZvtpl_marUZtpl_tmpZminvZmaxvZsorted_versZipreterZsupported_versionsZdefault_versionZprivate_dirZdetailsZversions�v�
extensions�args�patternZsection_optionsr[�fnZdepsZfpath�fp�linerR�itemr$r-r%�parsets��
�

&


�
��8

zDependencies.parse)rN)�__name__�
__module__�__qualname__�__doc__r&r,r.r3r5r6r7r8r9rhr$r$r$r%r
s
%r
)Zlogging�	functoolsr�os.pathrrrrrZdhpython.pydistrrZdhpython.versionr	r
rZ	getLoggerrSr
r$r$r$r%�<module>s