PyWebIO icon indicating copy to clipboard operation
PyWebIO copied to clipboard

使用config装饰器装饰的应用函数丢失了原本的__name__

Open jackwolfey opened this issue 1 year ago • 0 comments

BUG描述 使用config装饰器装饰的应用函数丢失了原本的__name__ 这会导致当在一个app函数上套了多个装饰器再搭配使用start_server()部署多个应用时,引发ValueError: Duplicated application name报错

环境信息

  • 操作系统及版本: Windows 11 21H2
  • 浏览器及版本: Microsoft Edge 126.0.2592.102
  • Python版本: Python 3.10.13
  • PyWebIO版本: 1.8.3

最小可复现示例

from pywebio import output
from pywebio.platform import start_server, config
from pywebio.session import run_js
from functools import wraps


def remove_footer(webio_app):
    @wraps(webio_app)
    def remove_footer_wrapper():
        jscode = """$(".footer").remove();"""
        run_js(jscode)
        webio_app()

    return remove_footer_wrapper


@remove_footer
@config(title='show text')
def show_text():
    output.put_text('abc')


@remove_footer
@config(title='show markdown')
def show_markdown():
    output.put_markdown('# abc')


if __name__ == '__main__':
    start_server([show_text, show_markdown])

jackwolfey avatar Jul 18 '24 04:07 jackwolfey