HEX
Server: Apache/2.4.52 (Ubuntu)
System: Linux spn-python 5.15.0-89-generic #99-Ubuntu SMP Mon Oct 30 20:42:41 UTC 2023 x86_64
User: arjun (1000)
PHP: 8.1.2-1ubuntu2.20
Disabled: NONE
Upload Files
File: //usr/share/dh-python/dhpython/__pycache__/depends.cpython-310.pyc
o

O�Ib$2�@sxddlZddlmZddlmZmZddlmZmZddl	m
Z
mZmZddl
mZmZmZe�d�ZGdd	�d	�ZdS)
�N)�partial)�exists�join)�PKG_PREFIX_MAP�	MINPYCDEP)�parse_pydep�parse_requires_dist�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"||_||_|p	i}|_|�d�|_}|rdnd|_|dkr(|r$dnd|_n|dkr4|r0dnd	|_n|d
krF|r<dnd
|_|rCdnd
|_|d
krS|j|_|j|_n|jd|_|jd|_d|vpzd|vpzd|vpzd|vpzd|vpzd|vpzd|v|_	t
�|_g|_g|_
g|_g|_g|_dS)Nz-dbgzpython%s-dbgzpython%srzpython3-dbg�python3�cpython2zpython2-dbg�python2�pypyzpypy-dbgz
pypy%s-dbgzpypy%s�:anyz
python-devzpython-all-devzpython2-devzpython2-all-devz
python2.7-devzpython3-devzpython3-all-dev)�impl�package�bdep�endswith�is_debug_package�	ipkg_vtpl�ipkg_tpl�ipkg_tpl_ma�ipkg_vtpl_ma�python_dev_in_bd�set�depends�
recommends�suggests�enhances�breaks�	rtscripts)�selfrrr�dbgpkg�r(�(/usr/share/dh-python/dhpython/depends.py�__init__"sH
������
zDependencies.__init__cCs�t�|jd�}t|j�D]
}|�|jd�|�|�qt|j�D]
}|�|jd�|�|�qt|j	�D]
}|�|jd�|�|�q2t|j
�D]
}|�|jd�|�|�qEt|j�D]
}|�|jd�|�|�qXt|j�D]	}|�
|j|�qkdS)zFill in debhelper's substvars.�miscz
{}:Dependsz
{}:Recommendsz{}:Suggestsz{}:Enhancesz	{}:BreaksN)r�getr�sortedr �addsubstvarr�formatr!r"r#r$r%�add_rtupdate)r&�dh�prefix�ir(r(r)�	export_toGs�zDependencies.export_tocCs d|j|j|j|j|j|jfS)Nz#D=%s; R=%s; S=%s; E=%s, B=%s; RT=%s)r r!r"r#r$r%�r&r(r(r)�__str__Ws
��zDependencies.__str__cC�&|r||jvr|j�|�dSdSdS�N)r �add�r&�valuer(r(r)�depend\��zDependencies.dependcCr7r8)r!�appendr:r(r(r)�	recommend`r=zDependencies.recommendcCr7r8)r"r>r:r(r(r)�suggestdr=zDependencies.suggestcCr7r8)r#r>r:r(r(r)�enhancehr=zDependencies.enhancecCr7r8)r$r>r:r(r(r)�break_lr=zDependencies.break_cCs||jvr
|j�|�dSdSr8)r%r>r:r(r(r)�rtscriptps
�zDependencies.rtscriptc	s6t�d�j��j}�j}�j}�j}|j}|rht|d|d|d|d|df�rht|d|d|df�r;|}n|}|j	}	|j
}
|	|
krR��||	�d}	}
|	r]��d||	f�|
rh��d||
f��jd	kr�|dr�t
|d�}|d
}	|d}
|	t�j�kr���d||	f�|
t�j�kr���d||
df��jd
kr�|�d�r���d�dd�t
|d�D���|dr�t
|d�}|d
}	|d}
|	t�j�krވ�d||	f�|
t�j�kr��d||
df�|d�r�jtv�r��t�j�|dD]}��d|�jd
k�rdndf��qt�j�}
t�j�}|d��D�]\}}tdd�|�dg�D��}|D]}||
v�rP��||��q@t�d||��q@tdd�|�dg�D���rm��|�d}�j�r�t
|�dt���}|�r���d||d
f���d||ddf�n|�d��r���d||f���d||df�|�d��rI�jtv�rƈ�t�j�d}|�r�|dt|d
|dd�7}nTt|�dk�r�|d|d
7}nD|�d��r�|d|7}n7|�r.|d|7}|j	|j
k�r��||j	�n|j	�r��d||j	f�|j
�r.��d||j
df�|j�p3gD]
}|d|�dd�7}�q4��||f��q,|j|j|jd�}t t!�j�j"|j#d �}|j$�r|d!D]1}t%�j|fd"�j"i|��}�fd#d$�|d%D��fd&d$�|d'D��fd(d$�|d)D��qg|d*D]7}t&|d+d,d-��$}|D]}|�'d.��r�|d/d��(�}��||d0���q�Wd�n	1�s�wY�q�|d1D]1}t)�j|fd"�j"i|��}�fd2d$�|d%D��fd3d$�|d'D��fd4d$�|d)D��q�|j*�pgD]}��||d0���q|j+�p"gD]}��,||d0���q#|j-�p4gD]}��.||d0���q5|j/�pFgD]L}td5�j|�}t0|��sd|}t0|��sdt�1d6|��qGt%�j|fd"�j"i|��}�fd7d$�|d%D��fd8d$�|d'D��fd9d$�|d)D��qGt���dS):Nz&generating dependencies for package %s�compile�public_vers�ext_vers�ext_no_version�shebangsz%s (>= %s~)z
%s (<< %s)rr����r�	ext_soabi�|css�|]	}|�dd�VqdS)�-z-abi-N)�replace)�.0�soabir(r(r)�	<genexpr>�s��z%Dependencies.parse.<locals>.<genexpr>z%s%s�r�private_dirscss$�|]
}|jr|jjr|jVqdSr8��version�minor�rOr3r(r(r)rQ�s�"zDdependency on %s (from shebang) ignored - it's not supported anymorecss*�|]}|jdus|jjdurdVqdS)NTrTrWr(r(r)rQ�s�(Fz-V %s)�minver�maxverz -X '%s'�'z'\'')�depends_sec�recommends_sec�suggests_sec)rr�accept_upstream_versionszrequires.txtrc�g|]}��|��qSr(�r<rWr5r(r)�
<listcomp>��z&Dependencies.parse.<locals>.<listcomp>r cr_r(�r?rWr5r(r)ra�rbr!cr_r(�r@rWr5r(r)ra�rbr"zegg-info�rzutf-8)�encodingz
Requires: �
)�reqz	dist-infocr_r(r`rWr5r(r)ra�rbcr_r(rcrWr5r(r)rarbcr_r(rdrWr5r(r)rarb�debianz!cannot find requirements file: %scr_r(r`rWr5r(r)rarbcr_r(rcrWr5r(r)rarbcr_r(rdrWr5r(r)rarb)2�log�debugrrrrr�vrange�anyrXrYr<rr-r
r,rrr�items�list�inforrr�len�regexprrNrC�depends_section�recommends_section�suggests_sectionrr	rr^�
guess_depsr�open�
startswith�striprr r!r?r"r@�requiresr�warn)r&�stats�options�tpl�vtpl�tpl_ma�vtpl_marl�tpl_tmp�minv�maxv�sorted_vers�ipreter�supported_versions�default_version�private_dir�details�versions�v�
extensions�args�pattern�section_optionsrv�fn�deps�fpath�fp�linerh�itemr(r5r)�parsets�

�&


�
��������

zDependencies.parse)rN)�__name__�
__module__�__qualname__�__doc__r*r4r6r<r?r@rArBrCr�r(r(r(r)rs
%r)�logging�	functoolsr�os.pathrrr
rr�dhpython.pydistrrr	�dhpython.versionr
rr�	getLoggerrjrr(r(r(r)�<module>s