Your IP : 216.73.217.129
B
� f: � @ s" d Z ddlZyddlZW n ek
r0 dZY nX yddlmZ W n ek
rZ dZY nX yddlmZ W n ek
r� dZ Y nX yddlmZ
W n ek
r� dZ
Y nX ddlZyddlZW n ek
r� ddlZY nX ej
d Zdd� Zdd� Zedk�re�eej
dd� �� dS ) aI
Synopsis: %(prog)s [-h|-g|-b|-r|-a] dbfile [ picklefile ]
Convert the database file given on the command line to a pickle
representation. The optional flags indicate the type of the database:
-a - open using dbm (any supported format)
-b - open as bsddb btree file
-d - open as dbm file
-g - open as gdbm file
-h - open as bsddb hash file
-r - open as bsddb recno file
The default is hash. If a pickle file is named it is opened for write
access (deleting any existing data). If no pickle file is named, the pickle
output is written to standard output.
� Nc C s t j�tt� � d S )N)�sys�stderr�write�__doc__�globals� r r �</opt/alt/python37/lib64/python3.7/Tools/scripts/db2pickle.py�usage/ s r c
C s� y"t � | dddddddg�\}} W n t jk
r> t� dS X t| �d ksXt| �d
krbt� dS t| �dkr~| d }tj}nD| d }yt| d d�}W n( tk
r� tj� d| d � dS X d }�xj|D �]`\}}|d
k�ry
t
j}W n" tk
�r tj� d� dS X q�|dk�rLy
t
j
}W n" tk
�rH tj� d� dS X q�|dk�r�y
t
j}W n" tk
�r� tj� d� dS X q�|dk�r�y
tj}W n" tk
�r� tj� d� dS X q�|dk�r�y
tj}W n" tk
�r� tj� d� dS X q�|dkr�y
tj}W q� tk
�r. tj� d� dS X q�W |d k�rjt
d k�rdtj� d� tj� d� dS t
j}y||d�}W n4 t
jk
�r� tj� d| � tj� d� dS X x,|�� D ] }t�||| f|ddk� �q�W |�� |�� d S )NZhbrdag�hashZbtreeZrecno�dbm�gdbm�anydbm� r � �wbzUnable to open %s
)z-hz--hashzbsddb module unavailable.
)z-bz--btree)z-rz--recno)z-az--anydbmzdbm module unavailable.
)z-gz--gdbmzdbm.gnu module unavailable.
)z-dz--dbmzdbm.ndbm module unavailable.
zbsddb module unavailable - zmust specify dbtype.
�rzUnable to open %s. z&Check for format or version mismatch.
)�getopt�errorr �lenr �stdout�open�IOErrorr r �bsddbZhashopen�AttributeErrorZbtopenZrnopenr
r r �keys�pickle�dump�close) �argsZoptsZdbfileZpfileZdbopenZopt�argZdb�kr r r �main2 s�
r! �__main__r )r r r �ImportErrorZdbm.ndbmZndbmr Zdbm.gnuZgnur r
r r �argv�progr r! �__name__�exitr r r r �<module> s6
T