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 -3
View File
@@ -71,9 +71,7 @@ python3 -m pip install uv
uv sync --all-extras # 同步开发运行环境 uv sync --all-extras # 同步开发运行环境
uv run heurams # 验证包安装 uv run heurams
uv run heurams-tui # 启动 TUI
# 如果决定使用原生 python 环境 (不推荐, 但我们保留了这种方式以便在不便支持 uv 与硬链接的环境和文件系统(例如 termux)上运行) # 如果决定使用原生 python 环境 (不推荐, 但我们保留了这种方式以便在不便支持 uv 与硬链接的环境和文件系统(例如 termux)上运行)
-1
View File
@@ -61,7 +61,6 @@ default = true
[project.scripts] [project.scripts]
heurams = "heurams.__main__:main" heurams = "heurams.__main__:main"
heurams-tui = "heurams.interface.__main__:main"
[tool.pytest.ini_options] [tool.pytest.ini_options]
testpaths = ["tests"] testpaths = ["tests"]
+1 -1
View File
@@ -1,4 +1,4 @@
print("欢迎使用 HeurAMS 及其组件!") #print("欢迎使用 HeurAMS 及其组件!")
# 补充日志记录 # 补充日志记录
from heurams.services.logger import get_logger 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(): def main():
prompt = f"""HeurAMS {ver.ver} 已经被成功地安装在系统中. cli()
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)
if __name__ == "__main__": if __name__ == "__main__":