Spaces:
Runtime error
Runtime error
File size: 2,702 Bytes
82a7a28 |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 |
import logging
from pathlib import Path
import configparser
################################################################################
# Config and startup utilities
################################################################################
_config = None
def read_config_file(use_cache=True, verbose=True) -> configparser.ConfigParser:
global _config
if use_cache and _config is not None:
# if we have a cached config and accept that, return it
return _config
else:
config = configparser.ConfigParser()
# Read the default values in the module directory.
config_file_path = Path(__file__).parent.absolute() / '../config.ini'
print(f"Looking for default config on: {config_file_path}") if verbose else None
if config_file_path.exists():
config.read(config_file_path)
_config = config
else:
raise ValueError(f"Failed to find default config on: {config_file_path}")
# Now, let's override any specific default value, if there's a custom .ini config.
# Try the directory of the current main program
config_file_path = Path.cwd() / "config.ini"
if config_file_path.exists():
print(f"Found custom config on: {config_file_path}") if verbose else None
config.read(config_file_path) # this only overrides the values that are present in the custom config
_config = config
return config
else:
if verbose:
print(f"Failed to find custom config on: {config_file_path}") if verbose else None
print("Will use only default values. IF THINGS FAIL, TRY CUSTOMIZING MODEL, API TYPE, etc.") if verbose else None
return config
def pretty_print_config(config):
print()
print("=================================")
print("Current TinyTroupe configuration ")
print("=================================")
for section in config.sections():
print(f"[{section}]")
for key, value in config.items(section):
print(f"{key} = {value}")
print()
def start_logger(config: configparser.ConfigParser):
# create logger
logger = logging.getLogger("tinytroupe")
log_level = config['Logging'].get('LOGLEVEL', 'INFO').upper()
logger.setLevel(level=log_level)
# create console handler and set level to debug
ch = logging.StreamHandler()
ch.setLevel(log_level)
# create formatter
formatter = logging.Formatter('%(asctime)s - %(name)s - %(levelname)s - %(message)s')
# add formatter to ch
ch.setFormatter(formatter)
# add ch to logger
logger.addHandler(ch)
|