3 \�� @s�dddgZddlZddlZddlZddlZGdd�de�ZdddgZdaiZ ee fZydd l m Z Wne k r|dZ YnXdd d�Zd d�Zedkr�x(ejdd�D]Zeee�p�de�q�WdS)�open�whichdb�error�Nc@s eZdZdS)rN)�__name__� __module__� __qualname__�rr�$/usr/lib64/python3.6/dbm/__init__.pyr&szdbm.gnuzdbm.ndbmzdbm.dumb)�ndbm�r�c Cs�tdkr`xFtD]>}yt|dgd�}Wntk r:wYnXtsD|a|t|<qWts`tdt��d|krpt|�nd}|dkr�d|ks�d|kr�t}q�tdd��n:|dkr�tdd ��n$|tkr�tdd j|���nt|}|j|||�S) Nr)�fromlistzno dbm clone found; tried %s�n�crz#need 'c' or 'n' flag to open new db�zdb type could not be determinedz/db type is {0}, but the module is not available) � _defaultmod�_names� __import__� ImportError�_modulesrr�formatr)�file�flag�mode�name�mod�resultrrr r5s.      c>Cs�y4tj|dd�}|j�tj|dd�}|j�dStk r�y:tj|dd�}|j�tdk r|tj|�}|j�dSWntk r�YnXYnXy`tj|d�tj|d�j}|dkr�dStj|dd�}z|jd �dkr�dSWd|j�XWntk �rYnXytj|d�}Wntk �r8dSX|�|jd �}WdQRX|dd �}t |�d k�rrdSyt j d|�\}Wnt j k �r�dSX|dk�r�dSyt j d|dd��\}Wnt j k �r�dSXdS)Nz.pag�rbz.dirzdbm.ndbmz.dbz.datrzdbm.dumb��'�"��rz=l�ΚW�͚W�ϚWzdbm.gnu)rr )r#r$r%�����) �ior�close�OSErrorr �os�stat�st_size�read�len�structZunpackr)�filename�f�d�sizeZs16�s�magicrrr ras`    �__main__rZUNKNOWN)r r )�__all__r'r*r/�sys� Exceptionrrrrr)Zdbmr rrrr�argvr0�printrrrr �s$    ,Y