Source code for lodstorage.storageconfig

'''
Created on 2020-08-29

@author: wf
'''
from enum import Enum
from pathlib import Path
import os
[docs]class StoreMode(Enum): ''' possible supported storage modes ''' JSONPICKLE = 1 # JSON Pickle JSON = 2 SQL = 3 SPARQL = 4 YAML = 5
[docs]class StorageConfig(object): ''' a storage configuration '''
[docs] def getCachePath(self,ensureExists=True)->str: ''' get the path to the default cache Args: name(str): the name of the cache to use ''' cachedir=f"{self.cacheRootDir}/.{self.cacheDirName}" if ensureExists: if not os.path.exists(cachedir): os.makedirs(cachedir) return cachedir
def __init__(self, mode=StoreMode.SQL,cacheRootDir:str=None,cacheDirName:str="lodstorage",cacheFile=None,withShowProgress=True,profile=True,debug=False,errorDebug=True): ''' Constructor Args: mode(StoreMode): the storage mode e.g. sql cacheRootDir(str): the cache root directory to use - if None the home directory will be used cacheFile(string): the common cacheFile to use (if any) withShowProgress(boolean): True if progress should be shown profile(boolean): True if timing / profiling information should be shown debug(boolean): True if debugging information should be shown errorDebug(boolean): True if debug info should be provided on errors (should not be used for production since it might reveal data) ''' if cacheRootDir is None: home = str(Path.home()) self.cacheRootDir=f"{home}" else: self.cacheRootDir=cacheRootDir self.cacheDirName=cacheDirName self.mode=mode self.cacheFile=cacheFile self.profile=profile self.withShowProgress=withShowProgress self.debug=debug self.errorDebug=errorDebug
[docs] @staticmethod def getDefault(debug=False): return StorageConfig.getSQL(debug)
[docs] @staticmethod def getSQL(debug=False): config=StorageConfig(mode=StoreMode.SQL,debug=debug) config.tableName=None return config
[docs] @staticmethod def getJSON(debug=False): config=StorageConfig(mode=StoreMode.JSON,debug=debug) return config
[docs] @staticmethod def getJsonPickle(debug=False): config=StorageConfig(mode=StoreMode.JSONPICKLE,debug=debug) return config
[docs] @staticmethod def getSPARQL(prefix,endpoint,host,debug=False): config=StorageConfig(mode=StoreMode.SPARQL,debug=debug) config.prefix=prefix config.host=host config.endpoint=endpoint return config
[docs] @staticmethod def getYaml(debug=False): config=StorageConfig(mode=StoreMode.YAML,debug=debug) return config