Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

[Feat] Optimize CLI #3748

Open
wants to merge 2 commits into
base: develop
Choose a base branch
from

Conversation

Bobholamovic
Copy link
Member

@Bobholamovic Bobholamovic commented Mar 28, 2025

目前PaddleX CLI的所有命令行参数都处在同一命名空间,并且位置参数被插件安装功能占用,这导致了不同功能之间的“不对称”:看起来像是先有一个安装插件的CLI,然后再把其他功能以可选参数的方式硬塞进CLI,显得不太优雅。例如,执行paddlex --help会得到如下结果:

image

其中的位置参数plugins看起来像是所有功能都需要用到的公共参数,但实际只有插件安装功能会用到。

本PR对PaddleX CLI进行改造,在基本不改动接口的情况下,使各功能尽可能“对称”,看起来更自然。修改后,执行paddlex --help会得到如下结果:

image

至少,从上述帮助信息来看,PLUGIN只用于--install,而与其他功能无关。

如上所述,本PR所做的修改只能说是“基本不改动接口”,实际上,此前允许的类似paddlex --install -y PaddleOCR的用法将不再支持,--install和插件名之间不再允许插入额外的参数。经过搜索,此前的文档和代码示例中均未涉及到上述用法,所以我认为本PR做的修改还是相对安全的。

更优雅的方案可能是使用subparser将不同功能隔离到不同的命名空间,这也符合目前业界大部分同类CLI的实践。不过,考虑到那样修改后的形式可能与现有接口存在较大的不兼容,目前暂不考虑。

Copy link

paddle-bot bot commented Mar 28, 2025

Thanks for your contribution!

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

1 participant