NovaBryan/EVE_Dump
Log | Files | 📦 下载最新源码 (.zip) | Refs | README

anydbm.py (952B)


      1 #Embedded file name: C:\BuildAgent\work\20d73f1b24eed06e\eve\release\V24.01\carbon\common\stdlib\anydbm.py
      2 
      3 
      4 class error(Exception):
      5     pass
      6 
      7 
      8 _names = ['dbhash',
      9  'gdbm',
     10  'dbm',
     11  'dumbdbm']
     12 _errors = [error]
     13 _defaultmod = None
     14 for _name in _names:
     15     try:
     16         _mod = __import__(_name)
     17     except ImportError:
     18         continue
     19 
     20     if not _defaultmod:
     21         _defaultmod = _mod
     22     _errors.append(_mod.error)
     23 
     24 if not _defaultmod:
     25     raise ImportError, 'no dbm clone found; tried %s' % _names
     26 error = tuple(_errors)
     27 
     28 def open(file, flag = 'r', mode = 438):
     29     from whichdb import whichdb
     30     result = whichdb(file)
     31     if result is None:
     32         if 'c' in flag or 'n' in flag:
     33             mod = _defaultmod
     34         else:
     35             raise error, "need 'c' or 'n' flag to open new db"
     36     elif result == '':
     37         raise error, 'db type could not be determined'
     38     else:
     39         mod = __import__(result)
     40     return mod.open(file, flag, mode)