feat: 简化并统一命令行入口
删除了原有 __main__.py 中冗长且烦人的说教, heurams 现作为所有功能的 统一入口, 并移除了单独的 heurams-tui 入口(现为 heurams tui)
This commit is contained in:
+1
-3
@@ -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)上运行)
|
||||||
|
|
||||||
|
|||||||
@@ -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,4 +1,4 @@
|
|||||||
print("欢迎使用 HeurAMS 及其组件!")
|
#print("欢迎使用 HeurAMS 及其组件!")
|
||||||
|
|
||||||
# 补充日志记录
|
# 补充日志记录
|
||||||
from heurams.services.logger import get_logger
|
from heurams.services.logger import get_logger
|
||||||
|
|||||||
+50
-16
@@ -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__":
|
||||||
|
|||||||
Reference in New Issue
Block a user