jeanpoll
first working version of app
79e12fd
raw history blame
No virus
2.34 kB
from functools import wraps
import logging
import os
from time import time
import configparser
timer_functions = {}
# Loading configuration from config file
config = configparser.ConfigParser()
config.read(os.path.join(os.path.dirname(__file__), 'config.ini'))
def timing(f):
@wraps(f)
def wrap(*args, **kw):
ts = time()
result = f(*args, **kw)
te = time()
if f.__name__ in timer_functions.keys():
current_elapsed_time = timer_functions[f.__name__]
else:
current_elapsed_time = 0
timer_functions[f.__name__] = current_elapsed_time + (te - ts)
logging.debug('func:%r took: %2.4f sec' % \
(f.__name__, te - ts))
return result
return wrap
def f_read_config(path=None):
""" read config file from specified file path
:param path: file path
:return: configparser object
"""
# Loading configuration from config file
config = configparser.ConfigParser()
if path is None:
path = os.path.join(os.path.dirname(__file__), 'config.ini')
config.read(path, encoding='utf-8')
return config
def f_setup_logger(level_sysout=logging.INFO, level_file=logging.DEBUG, folder_path="logs"):
"""Setup logger
By default we display only INFO in console, and write everything in file
Args:
level_sysout: Level that is displayed in console (default INFO)
level_file: Level that is written in file (default DEBUG)
Returns:
Nothing
"""
if not os.path.isdir(folder_path):
os.mkdir(folder_path)
for handler in logging.root.handlers[:]:
logging.root.removeHandler(handler)
file_handler = logging.FileHandler(filename=os.path.join(folder_path, "amf_uce_nlp_{}.log".format(time())),
encoding='utf-8')
sysout_handler = logging.StreamHandler()
file_handler.setLevel(level_file)
sysout_handler.setLevel(level_sysout)
logging.basicConfig(handlers=[file_handler, sysout_handler], level=logging.DEBUG,
format='%(asctime)s (%(levelname)s) %(message)s', datefmt='%m/%d/%y %I:%M:%S %p')
def get_model_full_path(model_name):
path_models = config["DEFAULT"]["path_models"]
return os.path.join(os.path.dirname(__file__), path_models, model_name)