File: //lib/python3/dist-packages/apport/__pycache__/packaging_impl.cpython-38.pyc
U
��h� � @ s* d Z ddlZddlZddlZddlZddlZddlZddlZddlZddl Z ddl
Z
ddlmZ ddl
Z
e
�dde� ddlZz4ddlZddlmZmZmZ eeeef eZeZW nH ek
r� ddlmZmZ ddlmZ dd lmZmZ ddlZY nX ddlZdd
lm Z G dd� de �Z!e!� Z"dS )
zyapport.PackageInfo class implementation for python-apt and dpkg.
This is used on Debian and derivatives such as Ubuntu.
� N)�closing�ignorezapt API not stable yet)�urlopen�quote�unquote)�URLError� HTTPError)r )r r )�PackageInfoc @ s� e Zd ZdZdd� Zdd� Zdd� Zdd � Zd
d� Zdd
� Z dd� Z
dd� Zdd� Zdd� Z
dd� Zdd� Zdd� Zdd� Zdd� Zd d!� Zd"d#� Zd_d%d&�Zd'd(� Zd)d*� Zd+d,� Zd-d.� Zd/d0� Zd1d2� Zd`d4d5�Zed6d7� �Zd8d9� Zd:d;� Z dad<d=�Z!d>d?� Z"d@dA� Z#dbdCdD�Z$dEdF� Z%edGdH� �Z&dIdJ� Z'edKdL� �Z(dMdN� Z)dOdP� Z*dQdR� Z+edSdT� �Z,edUdV� �Z-edWdX� �Z.dYdZ� Z/d3Z0d[d\� Z1d3Z2d]d^� Z3d3S )c�__AptDpkgPackageInfoz�Concrete apport.PackageInfo class implementation for python-apt and
dpkg, as found on Debian and derivatives such as Ubuntu.c C sF d | _ d | _d | _d | _d | _d | _d | _d| _| jd | _d| _ d S )Nzhttps://api.launchpad.net/develz*/~%(user)s/+archive/%(distro)s/%(ppaname)sF)
�
_apt_cache�_sandbox_apt_cache�_sandbox_apt_cache_arch�
_contents_dir�_mirror�_virtual_mapping_obj�_contents_mapping_objZ_launchpad_base�_ppa_archive_url�_contents_update��self� r �7/usr/lib/python3/dist-packages/apport/packaging_impl.py�__init__- s z__AptDpkgPackageInfo.__init__c C s0 z| j rt�| j � W n tk
r* Y nX d S )N)r �shutil�rmtree�AttributeErrorr r r r �__del__9 s
z__AptDpkgPackageInfo.__del__c C sZ | j d k r| j S tj�|d�}tj�|�rNt|d��}t�|�| _ W 5 Q R X ni | _ | j S )N�virtual_mapping.pickle�rb)r �os�path�join�exists�open�pickle�load�r � configdir�mapping_file�fpr r r �_virtual_mapping@ s
z%__AptDpkgPackageInfo._virtual_mappingc C s@ t j�|d�}| jd k r<t|d��}t�| j|� W 5 Q R X d S )Nr �wb)r r r! r r# r$ �dumpr&