def parse()

in options/base_config.py [0:0]


    def parse(self, override_config=None, verbose=True):
        if not self.initialized:
            parser = argparse.ArgumentParser()
            parser = self.initialize(parser)

        opt, unknown = parser.parse_known_args()

        if override_config is not None:
            # prioritize override_config if it exists
            base_config = OmegaConf.load(override_config.base_config)

            # also override the argparse so that checkpoint paths get loaded properly
            if 'resume_from_path' in override_config.keys():
                opt.resume_from_path = override_config['resume_from_path']
        else:
            # otherwise grab the base config file from cli args, or argparse default
            base_config = OmegaConf.load(opt.base_config)
            override_config = OmegaConf.create()  # make empty config

        # config from previosuly trained model checkpoint
        checkpoint_config, opt = self.get_config_from_checkpoint(opt)

        # config from argparse
        argparse_config = OmegaConf.create(vars(opt))

        # unknown args from command line (will override base config file)
        # should be in dot-list format: https://omegaconf.readthedocs.io/en/2.1_branch/usage.html#from-a-dot-list
        cli_config = OmegaConf.from_dotlist(unknown)

        # configs to the right take priority over configs to the left during merge
        config = OmegaConf.merge(base_config, checkpoint_config, argparse_config, cli_config, override_config)

        if verbose:
            print('')
            print('----------------- Config ---------------\n')
            print(OmegaConf.to_yaml(config))
            print('------------------- End ----------------\n')
            print('')

        return config