3 \ @sdddgZddlZddlZddlZddlZGdddeZdddgZdaiZ ee fZydd l m Z Wne k r|dZ YnXdd dZd dZedkrx(ejddD]ZeeepdeqWdS)openwhichdberrorNc@s eZdZdS)rN)__name__ __module__ __qualname__rr$/usr/lib64/python3.6/dbm/__init__.pyr&szdbm.gnuzdbm.ndbmzdbm.dumb)ndbmrc Cstdkr`xFtD]>}yt|dgd}Wntk r:wYnXtsD|a|t|<qWts`tdtd|krpt|nd}|dkrd|ksd|krt}qtddn:|dkrtdd n$|tkrtdd j|nt|}|j|||S) Nr)fromlistzno dbm clone found; tried %sncrz#need 'c' or 'n' flag to open new dbzdb type could not be determinedz/db type is {0}, but the module is not available) _defaultmod_names __import__ ImportError_modulesrrformatr)fileflagmodenamemodresultrrr r5s.      c>Csy4tj|dd}|jtj|dd}|jdStk ry:tj|dd}|jtdk r|tj|}|jdSWntk rYnXYnXy`tj|dtj|dj}|dkrdStj|dd}z|jd dkrdSWd|jXWntk rYnXytj|d}Wntk r8dSX||jd }WdQRX|dd }t |d krrdSyt j d|\}Wnt j k rdSX|dkrdSyt j d|dd\}Wnt j k rdSXdS)Nz.pagrbz.dirzdbm.ndbmz.dbz.datrzdbm.dumb'"rz=lΚW͚WϚWzdbm.gnu)rr )r#r$r%) iorcloseOSErrorr osstatst_sizereadlenstructZunpackr)filenamefdsizeZs16smagicrrr ras`    __main__rZUNKNOWN)r r )__all__r'r*r/sys Exceptionrrrrr)Zdbmr rrrrargvr0printrrrr s$    ,Y