diff --git a/fastNLP/saver/config_saver.py b/fastNLP/saver/config_saver.py index de06f8b0..e05e865e 100644 --- a/fastNLP/saver/config_saver.py +++ b/fastNLP/saver/config_saver.py @@ -1,11 +1,9 @@ import os -import json -import configparser - from fastNLP.loader.config_loader import ConfigSection, ConfigLoader from fastNLP.saver.logger import create_logger + class ConfigSaver(object): def __init__(self, file_path): @@ -14,19 +12,21 @@ class ConfigSaver(object): raise FileNotFoundError("file {} NOT found!".__format__(self.file_path)) def _get_section(self, sect_name): - """ - :param sect_name: the name of section what wants to load - :return: the section + """This is the function to get the section with the section name. + + :param sect_name: The name of section what wants to load. + :return: The section. """ sect = ConfigSection() ConfigLoader(self.file_path).load_config(self.file_path, {sect_name: sect}) return sect def _read_section(self): - """ + """This is the function to read sections from the config file. + :return: sect_list, sect_key_list - sect_list is a list of ConfigSection() - sect_key_list is a list of names in sect_list + sect_list: A list of ConfigSection(). + sect_key_list: A list of names in sect_list. """ sect_name = None @@ -76,9 +76,10 @@ class ConfigSaver(object): return sect_list, sect_key_list def _write_section(self, sect_list, sect_key_list): - """ - :param sect_list: a list of ConfigSection() need to be writen into file - :param sect_key_list: a list of name of sect_list + """This is the function to write config file with section list and name list. + + :param sect_list: A list of ConfigSection() need to be writen into file. + :param sect_key_list: A list of name of sect_list. :return: """ with open(self.file_path, 'w') as f: @@ -96,9 +97,10 @@ class ConfigSaver(object): f.write('\n') def save_config_file(self, section_name, section): - """ - :param section_name: the name of section what needs to be changed and saved - :param section: the section with key and value what needs to be changed and saved + """This is the function to be called to change the config file with a single section and its name. + + :param section_name: The name of section what needs to be changed and saved. + :param section: The section with key and value what needs to be changed and saved. :return: """ section_file = self._get_section(section_name) @@ -134,7 +136,8 @@ class ConfigSaver(object): sect, sect_key = sect_list[section_name] for k in section.__dict__.keys(): if k not in sect_key: - sect_key.append('\n') + if sect_key[-1] != '\n': + sect_key.append('\n') sect_key.append(k) sect[k] = str(section[k]) if isinstance(section[k], str):