Prima versione gestore configurazioni

This commit is contained in:
2019-11-10 12:49:49 +01:00
parent 59c41cc3ba
commit a798f29b73

View File

@@ -3,8 +3,9 @@ Created on 2 nov 2019
@author: Emanuele Trabattoni @author: Emanuele Trabattoni
''' '''
from bananaSPLIT.libbabanasplit.libfancylogger import fancyLogger from libbabanasplit.libfancylogger import fancyLogger
import json,sys, os import json,os,glob,copy
class bananaCONF(object): class bananaCONF(object):
''' '''
@@ -12,7 +13,12 @@ class bananaCONF(object):
''' '''
def __init__(self, workdir=None, logger=None): def __init__(self, workdir=None, logger=None):
self.log = logger self.log = logger
self.fileList = None
self.workdir = None
self.inUse = None
self.settingsList = dict()
if workdir is not None: if workdir is not None:
self.workdir = workdir
os.chdir(workdir) os.chdir(workdir)
self.log.debug("Cerco le configurazioni in: [{}]".format(os.getcwd())) self.log.debug("Cerco le configurazioni in: [{}]".format(os.getcwd()))
else: else:
@@ -20,22 +26,57 @@ class bananaCONF(object):
pass pass
def open(self): def open(self):
self.log.info("Carico i file di configurazione")
self.fileList = glob.glob(self.workdir+"\\*.json")
if len(self.fileList) > 0:
for f in self.fileList:
try:
tf = json.load(open(f))
fName = f.split("\\")[-1]
self.settingsList[fName] = copy.deepcopy(tf)
self.log.info("Caricato correttamente: {}".format(fName))
f.close()
except json.JSONDecodeError as e:
self.log.error("Impossibile leggere la configurazione:{}\n \
Controlla il file a riga: {} e colonna:{}" .format(e.doc, e.lineno, e.colno))
except IOError as ee:
self.log.error("Impossibile aprire il file: {}".format(ee))
except Exception as eee:
self.log.critical("Eccezione inaspettata: {}".format(eee))
else:
self.log.error("Non ho trovato alcun file di configurazione!")
pass pass
def reload(self): def reload(self):
self.settingsList = None
self.fileList = None
self.inUse = None
self.open()
pass
def use(self, toUse):
self.inUse = toUse
pass pass
def save(self): def save(self):
self.log.info("Salvo la configurazione: {}".format(self.inUse))
try:
f=open()
json.dump(self.settingsList[self.inUse], f)
f.close()
except IOError as eee:
self.log.error("Impossibile salvare il file: {}".format(self.inUse))
pass pass
def get(self): def get(self, k):
pass pass
def set(self): def set(self, k, v):
pass pass
if __name__ == "__main__": if __name__ == "__main__":
logg = fancyLogger() logg = fancyLogger()
confloader = bananaCONF(workdir=os.getcwd(), logger=logg) confloader = bananaCONF(workdir="../", logger=logg)
confloader.open()