def _get_params()

in taskcat/_cli_core.py [0:0]


    def _get_params(self, item):
        params = []
        for param in inspect.signature(item).parameters.values():
            if param.name == "self" or param.name.startswith("_"):
                continue
            required = param.default == param.empty
            default = param.default if not required else None
            val_type = param.annotation if param.annotation in [str, int, bool] else str
            action = "store_true" if val_type == bool else "store"
            param_help = CliCore._get_param_help(item, param.name)
            name = param.name.lower()
            kwargs = {"action": action, "help": param_help}
            if not required:
                name = name.replace("_", "-")
                kwargs.update(
                    {"required": required, "default": default, "dest": param.name}
                )
            if action == "store":
                kwargs.update({"type": val_type})
            if required:
                params.append([[name], kwargs])
            else:
                if f"{item.__qualname__}.{name}" in self.longform_required:
                    params.append([[f"--{name}"], kwargs])
                else:
                    params.append([[f"-{name[0]}", f"--{name}"], kwargs])
        return params