File: //proc/1233/cwd/lib/python3/dist-packages/apport/__pycache__/crashdb.cpython-310.pyc
o
Z�8d9� � @ s� d Z ddlZddlZddlZddlZzddlmZ ddlmZm Z e
Zee f W n! eyI ddl
mZ ddlmZ ddlm Z ddlmZ Y nw ddlZd d
� ZG dd� d�Zdd
d�Zdd� ZG dd� de�ZdS )z"Abstract crash database interface.� N)� Exception)�
quote_plus�urlopen)�
cmp_to_key)r )r )�URLErrorc C s t | t�r| �dd�S | S )z.Convert str to an unicode if it isn't already.�UTF-8�ignore)�
isinstance�bytes�decode)�str� r
�0/usr/lib/python3/dist-packages/apport/crashdb.py�_u s
r c @ sX e Zd Zdd� Zdd� Zdd� Zdd� ZdRd
d�Zdd
� Zdd� Z dd� Z
dd� Zdd� Zdd� Z
dd� Zdd� ZdSdd�Zdd � Zd!d"� Zd#d$� Zed%d&� �ZdRd'd(�Zd)d*� Zd+d,� Zd-d.� Z dTd/d0�ZdUd2d3�Zd4d5� Zd6d7� Zd8d9� Zd:d;� Zd<d=� Z d>d?� Z!d@dA� Z"dBdC� Z#dDdE� Z$dFdG� Z%dHdI� Z&dJdK� Z'dLdM� Z(dRdNdO�Z)dPdQ� Z*d S )V�
CrashDatabasec C s || _ || _d| _dS )az Initialize crash database connection.
You need to specify an implementation specific file with the
authentication credentials for retracing access for download() and
update(). For upload() and get_comment_url() you can use None.
options is a dictionary with additional settings from crashdb.conf; see
get_crashdb() for details.
N)� auth_file�options�duplicate_db)�selfr r r
r
r �__init__&