Esempio n. 1
0
 def __init__(
     self,
     db_name,
     db_ext=None,
     read_only=False,
     database_default_func=None,
     clear=False,
     stringify_keys=False,
     **kwargs
 ):
     MemDict.__init__(
         self,
         db_name,
         read_only=read_only,
         stringify_keys=stringify_keys,
         database_default_func=database_default_func,
         **kwargs
     )
     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.closed = False
     self._db_file = shelve.open(self._db_full_path, flag=self.flag)
     if not clear:
         # Copy all elements into memory dict
         for key in self._db_file:
             self._database[key] = self._db_file[key]
     # We're done with the file for now
     self._db_file.close()
Esempio n. 2
0
    def _add_init_kwargs(self, kwargs):
        MemDict._add_init_kwargs(self, kwargs)

        kwargs["db_name"] = self._db_name
        kwargs["db_ext"] = self._db_ext