ó
—êé[c           @   s¬   d  Z  d d l Z d d l Z d d l Z y d d l Z e j Z Wn e k
 rb d Z e	 Z n Xd „  Z
 e d k r¨ x- e j d D] Z e
 e ƒ p› d Ge GHq† Wn  d S(   s0   Guess which db package to use to open a db file.iÿÿÿÿNc         C   s–  yq t  |  t j d d ƒ } | j ƒ  t j d k oB t j d k sl t  |  t j d d ƒ } | j ƒ  n  d SWn| t k
 rï yQ t  |  t j d d ƒ } | j ƒ  t d k	 rÑ t j  |  ƒ } | j ƒ  d SWqð t t
 f k
 rë qð Xn XyŽ t j |  t j d ƒ t j |  t j d ƒ j } | d	 k r8d
 St  |  t j d d ƒ } z | j d ƒ d k rnd
 SWd | j ƒ  XWn t t f k
 r—n Xy t  |  d ƒ } Wn t k
 r¿d SX| j d ƒ } | j ƒ  | d	 d !} t | ƒ d k rüd Sy t j d | ƒ \ } Wn t j k
 r,d SX| d k r=d S| d k rMd Sy t j d | d ƒ \ } Wn t j k
 r�d SX| d k r’d Sd S(    sg  Guess which db package to use to open a db file.

    Return values:

    - None if the database file can't be read;
    - empty string if the file can be read but can't be recognized
    - the module name (e.g. "dbm" or "gdbm") if recognized.

    Importing the given module may still fail, and opening the
    database using that module may still fail.
    t   pagt   rbs   GNU gdbmt   os2emxt   dirt   dbmt   dbt   dati    t   dumbdbmi   t   't   "Ni   i   t    s   =liÎšWiÍšWiÏšWt   gdbmia i at   bsddb185iüÿÿÿt   dbhash(   R   R	   (   iÎšWiÍšWiÏšW(   ia i a(   ia i a(   t   opent   ost   extsept   closeR   t   libraryt   syst   platformt   IOErrort   Nonet	   _dbmerrort   statt   st_sizet   readt   OSErrort   lent   structt   unpackt   error(   t   filenamet   ft   dt   sizet   s16t   st   magic(    (    s   /usr/lib/python2.7/whichdb.pyt   whichdb   sj    



t   __main__i   t   UNKNOWN(   t   __doc__R   R   R   R   R   R   t   ImportErrorR   R   R'   t   __name__t   argvR    (    (    (    s   /usr/lib/python2.7/whichdb.pyt   <module>   s   
	b