def make_methods():
    m_tup = """
    def {0}(self{7}{4}):
        \"\"\"
        {9}
        \"\"\"
        return {1}(*self.ipcon.send_request(self, {2}.FUNCTION_{3}, ({4}{8}), '{5}', '{6}'))
"""
    m_ret = """
    def {0}(self{6}{3}):
        \"\"\"
        {8}
        \"\"\"
        return self.ipcon.send_request(self, {1}.FUNCTION_{2}, ({3}{7}), '{4}', '{5}')
"""
    m_nor = """
    def {0}(self{6}{3}):
        \"\"\"
        {8}
        \"\"\"
        self.ipcon.send_request(self, {1}.FUNCTION_{2}, ({3}{7}), '{4}', '{5}')
"""
    methods = ''

    cls = device.get_category() + device.get_camel_case_name()
    for packet in device.get_packets('function'):
        nb = packet.get_camel_case_name()
        ns = packet.get_underscore_name()
        nh = ns.upper()
        par = python_common.make_parameter_list(packet)
        doc = format_doc(packet)
        cp = ''
        ct = ''
        if par != '':
            cp = ', '
            if not ',' in par:
                ct = ','

        in_f = make_format_list(packet, 'in')
        out_f = make_format_list(packet, 'out')

        elements = len(packet.get_elements('out'))
        if elements > 1:
            methods += m_tup.format(ns, nb, cls, nh, par, in_f, out_f, cp, ct, doc)
        elif elements == 1:
            methods += m_ret.format(ns, cls, nh, par, in_f, out_f, cp, ct, doc)
        else:
            methods += m_nor.format(ns, cls, nh, par, in_f, out_f, cp, ct, doc)

    return methods
def make_methods(typ):
    methods = ''
    func_start = '.. py:function:: '
    cls = device.get_camel_case_name()
    for packet in device.get_packets('function'):
        if packet.get_doc()[0] != typ:
            continue
        name = packet.get_underscore_name()
        params = python_common.make_parameter_list(packet)
        pd = make_parameter_desc(packet, 'in')
        r = make_return_desc(packet)
        d = format_doc(packet)
        obj_desc = make_object_desc(packet)
        desc = '{0}{1}{2}{3}'.format(pd, r, d, obj_desc)
        func = '{0}{1}.{2}({3})\n{4}'.format(func_start, 
                                             cls, 
                                             name, 
                                             params, 
                                             desc)
        methods += func + '\n'

    return methods