def _arg_list()

in ossdbtoolsservice/language/completion/pgcompleter.py [0:0]


    def _arg_list(self, func, usage):
        """Returns a an arg list string, e.g. `(_foo:=23)` for a func.

        :param func is a FunctionMetadata object
        :param usage is 'call', 'call_display' or 'signature'

        """
        template = {
            'call': self.call_arg_style,
            'call_display': self.call_arg_display_style,
            'signature': self.signature_arg_style
        }[usage]
        args = func.args()
        if not template:
            return '()'
        elif usage == 'call' and len(args) < 2:
            return '()'
        elif usage == 'call' and func.has_variadic():
            return '()'
        multiline = usage == 'call' and len(args) > self.call_arg_oneliner_max
        max_arg_len = max(len(a.name) for a in args) if multiline else 0
        args = (
            self._format_arg(template, arg, arg_num + 1, max_arg_len)
            for arg_num, arg in enumerate(args)
        )
        if multiline:
            return '(' + ','.join('\n    ' + a for a in args if a) + '\n)'
        else:
            return '(' + ', '.join(a for a in args if a) + ')'