B X¦@s"dZddlZy ddlZWnek r0dZYnXyddlmZWnek rZdZYnXyddlmZ Wnek rdZ YnXyddlmZ Wnek rdZ YnXddl Z y ddl Z Wnek rddl Z YnXe j dZddZddZedkre ee j dddS) 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. NcCstjttdS)N)sysstderrwrite__doc__globalsrrtdSXt|d ksXt|d krbtdSt|dkr~|d }tj}nD|d }yt|dd }Wn(tk rtj d |ddSXd}xj|D]`\}}|d kry t j }Wn"t k rtj ddSXq|dkrLy t j }Wn"t k rHtj ddSXq|dkry t j}Wn"t k rtj ddSXq|dkry tj}Wn"t k rtj ddSXq|dkry tj}Wn"t k rtj ddSXq|dkry tj}Wqt k r.tj ddSXqW|dkrjt dkrdtj dtj ddSt j }y||d}Wn4t jk rtj d|tj ddSXx,|D] }t|||f|ddkqW||d S)NZhbrdaghashZbtreeZrecnodbmgdbmanydbmrwbzUnable 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. )getopterrorr lenrstdoutopenIOErrorrrbsddbZhashopenAttributeErrorZbtopenZrnopenr r r keyspickledumpclose) argsZoptsZdbfileZpfileZdbopenZoptargZdbkrrrmain2s                         r!__main__r)rrr ImportErrorZdbm.ndbmZndbmr Zdbm.gnuZgnur r rrargvprogr r!__name__exitrrrrs6       T