Skip to content

Latest commit

 

History

History
80 lines (64 loc) · 1.95 KB

File metadata and controls

80 lines (64 loc) · 1.95 KB
import configparser
import os

class Config:
    """
    Methods:
        - generate()
        - add_value()
        - get_section()
        - add_value()
    """
    
    @staticmethod
    def _get_config():
        config = configparser.ConfigParser()
        config.read("config.ini")
        return config

    @staticmethod
    def generate():
        """
        Generate config.ini file
        """

        work_dir = os.getcwd()
        config = configparser.ConfigParser()
        config["Paths"] = { "home_dir" : work_dir,
                            "test_reports_dir" : r"{wd}\test".format(wd = work_dir)}

        config["Processing_files"] = {}
        with open("config.ini", "w") as configfile:
                config.write(configfile)

    @staticmethod
    def add_value(section, option, value):
        """
        Add value into config.ini file
        """

        config = Config._get_config()
        config.set(section, option, value)
        with open("config.ini", "w") as configfile:
            config.write(configfile)

    @staticmethod
    def get_section(section):
        """
        Get a section in dict
        """
        
        config = Config._get_config()
        return dict(config.items(section))
    
    @staticmethod
    def get_value(key, value):
        """
        Method for getting value from config.ini file
        """

        config = Config._get_config()
        return config.get(key, value)


"""
Iterate over sections in a config file - https://stackoverflow.com/questions/22068050/iterate-over-sections-in-a-config-file
"""

# NOTE: Print section
# TODO: Write debug method
for each_section in conf.sections():
    for (each_key, each_val) in conf.items(each_section):
        print(each_key)
        print(each_val)


# NOTE: Print whole config
# TODO: Write debug method
print({section: dict(config[section]) for section in config.sections()})