def update_return_type(self, ret_name, ret_type, default_description='Description', keyword='return', del_prefix='No Longer '):
    ''
    logger.info('[NapoleonDocstring] update return type')
    if (keyword == 'yield'):
        sec_name = 'Yields'
    elif (keyword == 'return'):
        sec_name = 'Returns'
    else:
        logger.debug("Unknown return keyword: '{}'".format(keyword))
        for std_ret_name in ('Yields', 'Returns'):
            if self.section_exists(std_ret_name):
                del_sec_name = (del_prefix + std_ret_name)
                del_sec_alias = self.SECTION_STYLE.resolve_alias(del_sec_name)
                if (not self.section_exists(del_sec_alias)):
                    self.finalize_section(del_sec_alias, '')
                del_sec = self.get_section(del_sec_alias)
                sec = self.pop_section(std_ret_name)
                del_sec.args = sec.args
        return
    if (not self.section_exists(sec_name)):
        for std_ret_name in ('Yields', 'Returns'):
            if self.section_exists(std_ret_name):
                logger.debug("old return section exists : '{}'".format(std_ret_name))
                old_sec = self.pop_section(std_ret_name)
                self.finalize_section(sec_name, '')
                new_sec = self.get_section(sec_name)
                new_sec.args = old_sec.args
                self.insert_section(sec_name, new_sec)
                break
    if self.section_exists(sec_name):
        sec = self.get_section(sec_name)
        if (sec.args and ret_type):
            p0 = next(iter(sec.args.values()))
            if p0.descr_only:
                p0.description = ret_type
            elif p0.types:
                p0.types = ret_type
            elif p0.names:
                p0.names = [ret_type]
        elif (ret_name or ret_type):
            description = default_description
            sec.args = OrderedDict()
            if ret_name:
                sec.args[ret_name] = Parameter([ret_name], ret_type, description)
            else:
                sec.args[ret_type] = Parameter([ret_type], '', description)
        else:
            pass
    else:
        self.finalize_section(sec_name, '')
        sec = self.get_section(sec_name)
        ret_type = (ret_type if (ret_type != '') else '${NUMBER:TYPE}')
        sec.args = OrderedDict()
        sec.args[ret_type] = Parameter([ret_type], '', default_description)
def update_return_type(self, ret_name, ret_type, default_description='Description', keyword='return', del_prefix='No Longer '):
    
    logger.info('[NapoleonDocstring] update return type')
    if (keyword == 'yield'):
        sec_name = 'Yields'
    elif (keyword == 'return'):
        sec_name = 'Returns'
    else:
        logger.debug("Unknown return keyword: '{}'".format(keyword))
        for std_ret_name in ('Yields', 'Returns'):
            if self.section_exists(std_ret_name):
                del_sec_name = (del_prefix + std_ret_name)
                del_sec_alias = self.SECTION_STYLE.resolve_alias(del_sec_name)
                if (not self.section_exists(del_sec_alias)):
                    self.finalize_section(del_sec_alias, )
                del_sec = self.get_section(del_sec_alias)
                sec = self.pop_section(std_ret_name)
                del_sec.args = sec.args
        return
    if (not self.section_exists(sec_name)):
        for std_ret_name in ('Yields', 'Returns'):
            if self.section_exists(std_ret_name):
                logger.debug("old return section exists : '{}'".format(std_ret_name))
                old_sec = self.pop_section(std_ret_name)
                self.finalize_section(sec_name, )
                new_sec = self.get_section(sec_name)
                new_sec.args = old_sec.args
                self.insert_section(sec_name, new_sec)
                break
    if self.section_exists(sec_name):
        sec = self.get_section(sec_name)
        if (sec.args and ret_type):
            p0 = next(iter(sec.args.values()))
            if p0.descr_only:
                p0.description = ret_type
            elif p0.types:
                p0.types = ret_type
            elif p0.names:
                p0.names = [ret_type]
        elif (ret_name or ret_type):
            description = default_description
            sec.args = OrderedDict()
            if ret_name:
                sec.args[ret_name] = Parameter([ret_name], ret_type, description)
            else:
                sec.args[ret_type] = Parameter([ret_type], , description)
        else:
            pass
    else:
        self.finalize_section(sec_name, )
        sec = self.get_section(sec_name)
        ret_type = (ret_type if (ret_type != ) else '${NUMBER:TYPE}')
        sec.args = OrderedDict()
        sec.args[ret_type] = Parameter([ret_type], , default_description)