'gathers from the files in a way that is convienent to use'

def gather_from_files(self):

    command_file = CONFIGURATION.get_help_files()
    cache_path = os.path.join(azclishell.configuration.get_config_dir(), 'cache')
    cols = _get_window_columns()
    with open(os.path.join(cache_path, command_file), 'r') as help_file:
        data = json.load(help_file)
    self.add_exit()
    commands = data.keys()
    for command in commands:
        branch = self.command_tree
        for word in command.split():
            if (word not in self.completable):
                self.completable.append(word)
            if (branch.children is None):
                branch.children = []
            if (not branch.has_child(word)):
                branch.children.append(CommandBranch(word))
            branch = branch.get_child(word, branch.children)
        description = data[command]['help']
        self.descrip[command] = add_new_lines(description, line_min=(int(cols) - (2 * TOLERANCE)))
        if ('examples' in data[command]):
            examples = []
            for example in data[command]['examples']:
                examples.append([add_new_lines(example[0], line_min=(int(cols) - (2 * TOLERANCE))), add_new_lines(example[1], line_min=(int(cols) - (2 * TOLERANCE)))])
            self.command_example[command] = examples
        all_params = []
        for param in data[command]['parameters']:
            suppress = False
            if (data[command]['parameters'][param]['help'] and ('==SUPPRESS==' in data[command]['parameters'][param]['help'])):
                suppress = True
            if (data[command]['parameters'][param]['help'] and (not suppress)):
                param_aliases = set()
                for par in data[command]['parameters'][param]['name']:
                    param_aliases.add(par)
                    self.param_descript[((command + '    ') + par)] = add_new_lines(((data[command]['parameters'][param]['required'] + '    ') + data[command]['parameters'][param]['help']), line_min=(int(cols) - (2 * TOLERANCE)))
                    if (par not in self.completable_param):
                        self.completable_param.append(par)
                    all_params.append(par)
                if (len(param_aliases) > 1):
                    param_list = self.same_param_doubles.get(command, [])
                    param_list.append(param_aliases)
                    self.same_param_doubles[command] = param_list
        self.command_param[command] = all_params
