varox34's picture
Upload 64 files
366b225 verified
# -*- coding: utf-8 -*-
from ast import literal_eval
from configparser import ConfigParser
from argparse import Namespace
class Config(ConfigParser):
def __init__(self, path):
super(Config, self).__init__()
self.read(path)
self.namespace = Namespace()
self.update(dict((name, literal_eval(value))
for section in self.sections()
for name, value in self.items(section)))
def __repr__(self):
s = line = "-" * 15 + "-+-" + "-" * 25 + "\n"
s += f"{'Param':15} | {'Value':^25}\n" + line
for name, value in vars(self.namespace).items():
s += f"{name:15} | {str(value):^25}\n"
s += line
return s
def __getattr__(self, attr):
return getattr(self.namespace, attr)
def __getstate__(self):
return vars(self)
def __setstate__(self, state):
self.__dict__.update(state)
def update(self, kwargs):
for name, value in kwargs.items():
setattr(self.namespace, name, value)
return self