File: //lib/python3/dist-packages/apport/__pycache__/report.cpython-310.pyc
o
j�8d� � @ s� d Z ddlZddlZddlZddlZddlZddlZddlZddlZddl Z ddl
Z
ddlZddlZddl
Z
ddlZddlZddlZddlZddlZddlmZ e
jdkrndZddlmZ ddlmZ ddlmZ eef nd ZddlmZ ddlmZ e Zddl!Z!ddl"Z"ddl#Z"dd
l$m%Z& ddl'm(Z( ej)�*dd
�Z+de+ Z,de+ Z-dZ.dZ/dZ0dZ1g d�Z2dd� Z3d+dd�Z4d+dd�Z5dd� Z6d+dd�Z7dd � Z8d!d"� Z9d#d$� Z:d%d&� Z;d'd(� Z<G d)d*� d*e!j=�Z>dS ),z;Representation of and data collection for a problem report.� N)�
ExpatError�3F)�URLError)�urlopen)�unquoteT)�impl)�kill_pkttyagent�APPORT_DATA_DIRz/usr/share/apportz%s/package-hooks/z%s/general-hooks/z/optz~/.apport-ignore.xmlz/etc/apport/blacklist.dz/etc/apport/whitelist.d)�sh�bash�dash�csh�tcshzpython*zruby*�phpzperl*zmono*�awkc C sT zt �| � W n
ty Y dS w t �| �D ]}||vr'|�|� t||� qdS )z7Recursively add dependencies of package to depends_set.N)� packaging�get_version�
ValueError�get_dependencies�add�_transitive_dependencies)�package�depends_set�d� r �//usr/lib/python3/dist-packages/apport/report.pyr 9 s �
��r c C s, t s
|dur
tj| |d�S t�d|| f �S )zrUse readlink() to resolve link.
Return a string representing the path to which the symbolic link points.
N��dir_fd�/proc/%s/%s)�_python2�os�readlink)�path�pidr r r r �_read_proc_linkF s r$ c
C s� z>t s|durtj| tjtjB |d�}nd|| f }t�|d��}|�� �� jddd�W d � W S 1 s7w Y W dS t t
fyX } zdt|� W Y d}~S d}~ww ) zXRead file content.
Return its content, or return a textual error if it failed.
Nr r �rb�UTF-8�replace��errors�Error: )r r �open�O_RDONLY� O_CLOEXEC�io�read�strip�decode�OSError�IOError�str)r"