Пример #1
0
 def __init__(
     self,
     db_name,
     db_ext=None,
     read_only=False,
     clear=False,
     cache_size=10 * 1024,
     immutable_vals=False,
     stringify_keys=False,
     cache_misses=True,
     read_pool_size=0,
     **kwargs
 ):
     self._db_name = db_name
     self._db_ext = db_ext if db_ext != None else get_default_file_ext()
     abs_dir_path = os.path.dirname(os.path.abspath(db_name))
     dir_present = os.path.exists(abs_dir_path)
     if not dir_present:
         try:
             os.makedirs(abs_dir_path)
         except OSError:
             pass
     self._db_full_path = ".".join((os.path.abspath(db_name), self._db_ext))
     file_present = os.path.exists(self._db_full_path)
     self.flag = "n" if clear else "r" if read_only and file_present else "c"
     self._database = shelve.open(self._db_full_path, flag=self.flag)
     self.closed = False
     UnorderedCachedSet.__init__(
         self,
         self._database,
         cache_size=cache_size,
         read_only=read_only,
         immutable_vals=immutable_vals,
         stringify_keys=stringify_keys,
         cache_misses=cache_misses,
         read_pool_size=read_pool_size,
         **kwargs
     )
Пример #2
0
 def _add_init_kwargs(self, kwargs):
     kwargs["db_name"] = self._db_name
     kwargs["db_ext"] = self._db_ext
     UnorderedCachedSet._add_init_kwargs(self, kwargs)