可以通过一个 Python 函数同时生成 CLI, Qt GUI 和 Dash web app 。只需要把函数参数进行类型与范围标记即可,比如:
from oneface import one, Arg
@one
def bmi(name: Arg(str),
height: Arg(float, [100, 250]) = 160,
weight: Arg(float, [0, 300]) = 50.0):
BMI = weight / (height / 100) ** 2
print(f"Hi {name}. Your BMI is: {BMI}")
return BMI
# run cli
bmi.cli()
# or run qt_gui
bmi.qt_gui()
# or run dash web app
bmi.dash_app()
上述代码能够产生三种不同的接口:
CLI | Qt GUI | Dash web app |
---|---|---|
以一种非常简单的方式为程序提供接口,比如把函数直接变成 Web app ,提供给不会跑命令行的人使用。局限性是只适合创建简单(没有交互状态)的界面。
1
JeffersonQin 2022-03-21 17:57:41 +08:00
有个建议,感觉这个项目想法很好,但是如果用 GPL 授权估计会劝退很多人 .... 比方说我
|
2
l0wkey 2022-03-21 18:17:37 +08:00 via iPhone
支持图片或文件选择操作不
|
3
lzs5240 2022-03-21 18:20:18 +08:00
Good
|
5
Nanguage OP @JeffersonQin 我会考虑一下的,习惯用 GPL 了
|
7
ipwx 2022-03-22 10:17:36 +08:00
提个小建议:类型声明用 Arg 挺不友好。。。
建议考虑用 dataclass 包一层,或者参考 Pydantic 。尽量用内置变量 比如 int 和默认值推断你的界面 |