code: def configure(self, arguments=None, config=None):
          
  
          if arguments is not None:
              args_config = self.configure_args(arguments)
              base_config = copy.deepcopy(default_config)
              working_config = self.merge_config(base_config, args_config)
          if config is not None:
              self.validate_config(config)
              base_config = copy.deepcopy(default_config)
              working_config = self.merge_config(base_config, config)
  
          # override configuration with environment variables
          repo = self.get_env_default('LIME_REPOSITORY', 'disabled')
          repo_url = self.get_env_default('LIME_REPOSITORY_URL',
                                      working_config['repository']['url'])
          if repo.lower() == 'enabled':
              working_config['repository']['enabled'] = True
  
          working_config['repository']['url'] = repo_url
  
          return working_config
docs: Merge command line arguments, config files, and default configs
  
          :type arguments: argparse.Namespace
          :params arguments: Arguments produced by Cli.parse_args
          :type config: dict
          :params config: configuration dict to merge and validate