B
    18\.                 @   s"  d Z ddlZyddlZW n ek
r0   dZY nX yddlmZ W n ek
rZ   dZY nX yddlmZ	 W n ek
r   dZ	Y nX yddlmZ
 W n ek
r   dZ
Y nX ddlZyddlZW n ek
r   ddlZY nX ejd Zdd Zdd Zedkreeejdd  dS )	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tt   d S )N)sysstderrwrite__doc__globals r   r   W/oak/stanford/groups/akundaje/marinovg/programs/Python-3.7.3/Tools/scripts/db2pickle.pyusage/   s    r	   c       	   
   C   s  y"t  | dddddddg\}} W n t jk
r>   t  dS X t| d	ksXt| d
krbt  dS t| dkr~| d	 }tj}nD| d	 }yt| d d}W n( tk
r   tj	d| d   dS X d }xj|D ]`\}}|dkry
t
j}W n" tk
r   tj	d dS X q|dkrLy
t
j}W n" tk
rH   tj	d dS X q|dkry
t
j}W n" tk
r   tj	d dS X q|dkry
tj}W n" tk
r   tj	d dS X q|dkry
tj}W n" tk
r   tj	d dS X q|dkry
tj}W q tk
r.   tj	d dS X qW |d krjt
d krdtj	d tj	d dS t
j}y||d}W n4 t
jk
r   tj	d|  tj	d dS X x,| D ] }t||| f|ddk qW |  |  d	S )Nhbrdaghashbtreerecnodbmgdbmanydbm   r      wbzUnable to open %s
)z-hz--hashzbsddb module unavailable.
)z-bz--btree)z-rz--recno)z-az--anydbmzdbm module unavailable.
)z-gz--gdbmzdbm.gnu module unavailable.
)z-dz--dbmzdbm.ndbm module unavailable.
zbsddb module unavailable - zmust specify dbtype.
rzUnable to open %s.  z&Check for format or version mismatch.
)getopterrorr	   lenr   stdoutopenIOErrorr   r   bsddbhashopenAttributeErrorbtopenrnopenr   r   r   keyspickledumpclose)	argsoptsdbfilepfiledbopenoptargdbkr   r   r   main2   s    













 r-   __main__r   )r   r   r   ImportErrorZdbm.ndbmndbmr   Zdbm.gnuZgnur   r   r   r!   argvprogr	   r-   __name__exitr   r   r   r   <module>   s6   




T
