HEX
Server: nginx/1.28.0
System: Linux server-one 5.15.0-153-generic #163-Ubuntu SMP Thu Aug 7 16:37:18 UTC 2025 x86_64
User: root (0)
PHP: 8.3.23
Disabled: NONE
Upload Files
File: //usr/share/apt-listchanges/__pycache__/ALCSeenDb.cpython-310.pyc
o

Dc``?�@sfddlmZddlmZddlZddlZGdd�de�ZGdd�de�Z	Gdd	�d	e	�Z
d
dd�ZdS)�)�ndbm)�_Nc@seZdZdS)�DbErrorN)�__name__�
__module__�__qualname__�rr�'/usr/share/apt-listchanges/ALCSeenDb.pyr src@s@eZdZdZdd�Zdd�Zdd�Zdd	�Zd
d�Zdd
�Z	dS)�seendb_dummyzYInterface for seen database.
       Also used when path to the database is not configuredcCsdS)NFr��self�
srcpackagerrr	�__contains__&�zseendb_dummy.__contains__cC�dS�Nrrrrr	�__getitem__)rzseendb_dummy.__getitem__cCrrr�rr
�versionrrr	�__setitem__,rzseendb_dummy.__setitem__cCrrr�rrrr	�close_db/rzseendb_dummy.close_dbcCrrrrrrr	�
apply_changes2rzseendb_dummy.apply_changescCsttd���)Nz�Path to the seen database is unknown.
Please either specify it with --save-seen option
or pass --profile=apt to have it read from the configuration file.)rrrrrr	�dump5szseendb_dummy.dumpN)
rrr�__doc__rrrrrrrrrr	r
#sr
csReZdZdZd�fdd�	Zdd�Zdd�Zd	d
�Zdd�Zd
d�Z	dd�Z
�ZS)�seendbz!Class to manage the seen databaseFc
s�t���d|_|dd�|jkrttd�||jd���|dd�|_z|r)dnd}t�|j|d�|_d|jvWnt	yT}zttd	�|t
|�d
��|�d}~wwi|_dS)Nz.db���z)Database %(db)s does not end with %(ext)s)�db�ext�r�c�zfoo%0z*Database %(db)s failed to load: %(errmsg)s)r�errmsg)�super�__init__�
_extensionrr�_dbpathr�open�_seen�	Exception�str�	_seen_new)r�path�readOnly�mode�ex��	__class__rr	r$<s(

�����
zseendb.__init__cCs
||jvSr)r(rrrr	rPs
zseendb.__contains__cCs|j|��Sr)r(�decoderrrr	rSszseendb.__getitem__cCs(|j�|d���|kr||j|<dSdS)N�)r(�getr2r+rrrr	rVs�zseendb.__setitem__cCs|j��d|_dSr)r(�closerrrr	r[s

zseendb.close_dbcs��jsdS�fdd�}|d�|d�|d�}}}tj�|�r%t�||�t��jddd�}�j�	�D]\}}|||<q4|�
�tj�|�rLt�|�tj�|�rXt�||�t�
||�dS)Ncs�j|�jSr)r&r%)�argrrr	�mkdsz seendb.apply_changes.<locals>.mkz-old�z-newr r!)r+�osr,�isfile�shutil�copyrr'r&�itemsr5�unlink�link�rename)rr7�old�cur�new�seen�key�valuerrr	r_s

zseendb.apply_changescCs:t|j���D]}|j|}td|��|��f�qdS)Nz%s %s)�sortedr(�keys�printr2)rrErFrrr	r{s
�zseendb.dump�F)rrrrr$rrrrrr�
__classcell__rrr0r	r:srFcCs|jr	t|j|�St�Sr)�	save_seenrr
)�configr-rrr	�make_seen_db�srNrJ)�dbmr�ALChacksrr9r;r)r�objectr
rrNrrrr	�<module>sG