def __init__(self, command_line_args=None, conf_file=None, defaults=None,<EOL>json_conf=None):
self.conf_file = None<EOL>self.__conf_dir = None<EOL>self.__config = {}<EOL>if conf_file:<EOL><INDENT>self.conf_file = os.path.abspath(conf_file)<EOL>self.__conf_dir = os.path.dirname(self.conf_file)<EOL>if not json_conf:<EOL><INDENT>self.__config = load_config_json(self.conf_file)<EOL><DEDENT>else:<EOL><INDENT>self.__config = json_conf<EOL><DEDENT><DEDENT>self.__invoke_dir = os.getcwd()<EOL>self.__cli = command_line_args or {}<EOL>self.__defaults = defaults or {}<EOL>
Constructor for `ConfigParser`.

Args:
    command_line_args: list, a list of command line arguments
        that will override the keys defined in `conf_file`,
        or `None`
    conf_file: str, the path to the configuration file. If
        `None`, `ConfigParser` will look for a file named
        `hotdoc.json` in the current directory.