PyWebIO
PyWebIO copied to clipboard
使用config装饰器装饰的应用函数丢失了原本的__name__
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])