Prima versione gestore configurazioni
This commit is contained in:
@@ -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()
|
||||||
|
|
||||||
|
|
||||||
Reference in New Issue
Block a user