def _get_params()

in iact3/cli.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