Match worms abstract base class requirements.
This commit is contained in:
		
							parent
							
								
									c5b3c65ea1
								
							
						
					
					
						commit
						775287d8a8
					
				
					 1 changed files with 48 additions and 40 deletions
				
			
		|  | @ -1550,7 +1550,54 @@ class PhotoDB( | ||||||
|         if self.data_directory.exists and not self.data_directory.is_dir: |         if self.data_directory.exists and not self.data_directory.is_dir: | ||||||
|             raise exceptions.BadDataDirectory(self.data_directory.absolute_path) |             raise exceptions.BadDataDirectory(self.data_directory.absolute_path) | ||||||
| 
 | 
 | ||||||
|         # DATABASE |         # DATABASE / WORMS | ||||||
|  |         self._init_sql(create=create, skip_version_check=skip_version_check) | ||||||
|  | 
 | ||||||
|  |         # THUMBNAIL DIRECTORY | ||||||
|  |         self.thumbnail_directory = self.data_directory.with_child(constants.DEFAULT_THUMBDIR) | ||||||
|  |         self.thumbnail_directory.makedirs(exist_ok=True) | ||||||
|  | 
 | ||||||
|  |         # CONFIG | ||||||
|  |         self.config_filepath = self.data_directory.with_child(constants.DEFAULT_CONFIGNAME) | ||||||
|  |         self.load_config() | ||||||
|  | 
 | ||||||
|  |         # WORMS | ||||||
|  |         self._init_column_index() | ||||||
|  |         self._init_caches() | ||||||
|  | 
 | ||||||
|  |     def _check_version(self): | ||||||
|  |         ''' | ||||||
|  |         Compare database's user_version against constants.DATABASE_VERSION, | ||||||
|  |         raising exceptions.DatabaseOutOfDate if not correct. | ||||||
|  |         ''' | ||||||
|  |         existing = self.execute('PRAGMA user_version').fetchone()[0] | ||||||
|  |         if existing != constants.DATABASE_VERSION: | ||||||
|  |             raise exceptions.DatabaseOutOfDate( | ||||||
|  |                 existing=existing, | ||||||
|  |                 new=constants.DATABASE_VERSION, | ||||||
|  |                 filepath=self.data_directory, | ||||||
|  |             ) | ||||||
|  | 
 | ||||||
|  |     def _first_time_setup(self): | ||||||
|  |         log.info('Running first-time database setup.') | ||||||
|  |         self.executescript(constants.DB_INIT) | ||||||
|  |         self.commit() | ||||||
|  | 
 | ||||||
|  |     def _init_caches(self): | ||||||
|  |         self.caches = { | ||||||
|  |             objects.Album: cacheclass.Cache(maxlen=self.config['cache_size']['album']), | ||||||
|  |             objects.Bookmark: cacheclass.Cache(maxlen=self.config['cache_size']['bookmark']), | ||||||
|  |             objects.Photo: cacheclass.Cache(maxlen=self.config['cache_size']['photo']), | ||||||
|  |             objects.Tag: cacheclass.Cache(maxlen=self.config['cache_size']['tag']), | ||||||
|  |             objects.User: cacheclass.Cache(maxlen=self.config['cache_size']['user']), | ||||||
|  |             'tag_exports': cacheclass.Cache(maxlen=100), | ||||||
|  |         } | ||||||
|  | 
 | ||||||
|  |     def _init_column_index(self): | ||||||
|  |         self.COLUMNS = constants.SQL_COLUMNS | ||||||
|  |         self.COLUMN_INDEX = constants.SQL_INDEX | ||||||
|  | 
 | ||||||
|  |     def _init_sql(self, create, skip_version_check): | ||||||
|         if self.ephemeral: |         if self.ephemeral: | ||||||
|             existing_database = False |             existing_database = False | ||||||
|             self.sql = sqlite3.connect(':memory:') |             self.sql = sqlite3.connect(':memory:') | ||||||
|  | @ -1572,45 +1619,6 @@ class PhotoDB( | ||||||
|         else: |         else: | ||||||
|             self._first_time_setup() |             self._first_time_setup() | ||||||
| 
 | 
 | ||||||
|         # THUMBNAIL DIRECTORY |  | ||||||
|         self.thumbnail_directory = self.data_directory.with_child(constants.DEFAULT_THUMBDIR) |  | ||||||
|         self.thumbnail_directory.makedirs(exist_ok=True) |  | ||||||
| 
 |  | ||||||
|         # CONFIG |  | ||||||
|         self.config_filepath = self.data_directory.with_child(constants.DEFAULT_CONFIGNAME) |  | ||||||
|         self.load_config() |  | ||||||
| 
 |  | ||||||
|         # WORMS |  | ||||||
|         self.COLUMNS = constants.SQL_COLUMNS |  | ||||||
|         self.COLUMN_INDEX = constants.SQL_INDEX |  | ||||||
| 
 |  | ||||||
|         self.caches = { |  | ||||||
|             objects.Album: cacheclass.Cache(maxlen=self.config['cache_size']['album']), |  | ||||||
|             objects.Bookmark: cacheclass.Cache(maxlen=self.config['cache_size']['bookmark']), |  | ||||||
|             objects.Photo: cacheclass.Cache(maxlen=self.config['cache_size']['photo']), |  | ||||||
|             objects.Tag: cacheclass.Cache(maxlen=self.config['cache_size']['tag']), |  | ||||||
|             objects.User: cacheclass.Cache(maxlen=self.config['cache_size']['user']), |  | ||||||
|             'tag_exports': cacheclass.Cache(maxlen=100), |  | ||||||
|         } |  | ||||||
| 
 |  | ||||||
|     def _check_version(self): |  | ||||||
|         ''' |  | ||||||
|         Compare database's user_version against constants.DATABASE_VERSION, |  | ||||||
|         raising exceptions.DatabaseOutOfDate if not correct. |  | ||||||
|         ''' |  | ||||||
|         existing = self.execute('PRAGMA user_version').fetchone()[0] |  | ||||||
|         if existing != constants.DATABASE_VERSION: |  | ||||||
|             raise exceptions.DatabaseOutOfDate( |  | ||||||
|                 existing=existing, |  | ||||||
|                 new=constants.DATABASE_VERSION, |  | ||||||
|                 filepath=self.data_directory, |  | ||||||
|             ) |  | ||||||
| 
 |  | ||||||
|     def _first_time_setup(self): |  | ||||||
|         log.info('Running first-time database setup.') |  | ||||||
|         self.executescript(constants.DB_INIT) |  | ||||||
|         self.commit() |  | ||||||
| 
 |  | ||||||
|     def _load_pragmas(self): |     def _load_pragmas(self): | ||||||
|         log.debug('Reloading pragmas.') |         log.debug('Reloading pragmas.') | ||||||
|         self.executescript(constants.DB_PRAGMAS) |         self.executescript(constants.DB_PRAGMAS) | ||||||
|  |  | ||||||
		Loading…
	
		Reference in a new issue