feat: 简化并统一命令行入口

删除了原有 __main__.py 中冗长且烦人的说教, heurams 现作为所有功能的
统一入口, 并移除了单独的 heurams-tui 入口(现为 heurams tui)
This commit is contained in:
2026-05-16 23:46:39 +08:00
parent be9e79b576
commit 2735465629
4 changed files with 52 additions and 21 deletions
+1 -1
View File
@@ -1,4 +1,4 @@
print("欢迎使用 HeurAMS 及其组件!")
#print("欢迎使用 HeurAMS 及其组件!")
# 补充日志记录
from heurams.services.logger import get_logger
+50 -16
View File
@@ -1,22 +1,56 @@
import heurams.services.version as ver
import click
from heurams.services.version import ver, stage, codename, codename_cn
@click.group(invoke_without_command=True)
@click.version_option(
ver, "-v", "--version",
prog_name="HeurAMS",
message=f"%(prog)s %(version)s ({codename}/{codename_cn}), 阶段: {stage}",
)
@click.pass_context
def cli(ctx):
"""HeurAMS - 启发式辅助记忆调度器"""
if ctx.invoked_subcommand is None:
click.echo(cli.get_help(ctx))
ctx.exit(0)
@cli.command()
def tui():
"""启动内置基本用户界面 (TUI)"""
import heurams.interface.__main__ as tui_module
tui_module.main()
def _print_version():
click.echo(
f"HeurAMS {ver} ({codename}/{codename_cn}), 阶段: {stage}"
)
@cli.command()
def version():
"""输出版本信息"""
_print_version()
@cli.command(name="ver")
def ver_cmd():
"""输出版本信息"""
_print_version()
@cli.command(name="help")
@click.pass_context
def help_cmd(ctx):
"""显示此帮助信息"""
click.echo(cli.get_help(ctx.parent))
# __main__.py
def main():
prompt = f"""HeurAMS {ver.ver} 已经被成功地安装在系统中.
HeurAMS 被设计为一个带有辅助记忆调度器功能的软件包, 无法直接被执行, 但可被其他 Python 程序调用.
若您想启动内置的基本用户界面:
请运行 python -m heurams.interface,
或者 python -m heurams.interface.__main__
python 代指您使用的解释器, 在某些发行版中可能是 python3, 而 python 命令被指向了 python2.
尽管项目保留了 requirements.txt, 我们仍不推荐使用系统 python 和原始 venv 进行开发.
项目的推荐开发环境工具是 uv.
如果你的环境已经安装了 uv:
先运行 uv sync --all-extras 同步环境, 此命令只需要执行一遍, uv 会自动处理依赖.
然后通过运行 uv run heurams-tui 启动内置基本用户界面.
此时您的解释器在项目目录里的 .venv/bin 中, 使用 IDE 开发前, 务必切换解释器!
注意: 一个常见的误区是, 执行 interface 下的 __main__.py 运行基本用户界面, 这会导致 Python 上下文环境异常, 请不要这样做."""
print(prompt)
cli()
if __name__ == "__main__":