diff --git a/pyproject.toml b/pyproject.toml index cc2ea73..0459dad 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -17,7 +17,7 @@ license = { text = "MIT" } name = "pyflowx" readme = "README.md" requires-python = ">=3.8" -version = "0.1.6" +version = "0.1.7" [project.scripts] autofmt = "pyflowx.cli.autofmt:main" diff --git a/src/pyflowx/__init__.py b/src/pyflowx/__init__.py index 7532bf3..60faad5 100644 --- a/src/pyflowx/__init__.py +++ b/src/pyflowx/__init__.py @@ -84,7 +84,7 @@ from .runner import CliExitCode, CliRunner from .storage import JSONBackend, MemoryBackend, StateBackend from .task import TaskCmd, TaskEvent, TaskResult, TaskSpec, TaskStatus -__version__ = "0.1.6" +__version__ = "0.1.7" __all__ = [ "IS_LINUX", diff --git a/src/pyflowx/cli/packtool.py b/src/pyflowx/cli/packtool.py index 490f4b1..9baafec 100644 --- a/src/pyflowx/cli/packtool.py +++ b/src/pyflowx/cli/packtool.py @@ -295,13 +295,11 @@ def main() -> None: # 清理构建目录 "clean": px.Graph.from_specs([clean_build]), # 完整打包流程 - "all": px.Graph.from_specs( - [ - pack_source_default, - pack_deps_default, - pack_wheel_default, - ] - ), + "all": px.Graph.from_specs([ + pack_source_default, + pack_deps_default, + pack_wheel_default, + ]), }, ) runner.run_cli() diff --git a/src/pyflowx/cli/taskkill.py b/src/pyflowx/cli/taskkill.py index 9451ad9..e14563e 100644 --- a/src/pyflowx/cli/taskkill.py +++ b/src/pyflowx/cli/taskkill.py @@ -7,7 +7,6 @@ from __future__ import annotations import argparse -import sys import pyflowx as px from pyflowx.conditions import Constants @@ -25,54 +24,14 @@ def main() -> None: nargs="+", help="进程名称 (如: chrome.exe python node)", ) - parser.add_argument( - "--strategy", - choices=["sequential", "thread"], - default="sequential", - help="执行策略 (默认: sequential)", - ) - parser.add_argument( - "--dry-run", - action="store_true", - help="只打印执行计划, 不实际运行", - ) - parser.add_argument( - "--quiet", - action="store_true", - help="静默模式, 不显示执行过程", - ) - args = parser.parse_args() - # 动态创建 TaskSpec - specs: list[px.TaskSpec] = [] - for proc_name in args.process_names: - if Constants.IS_WINDOWS: - cmd = ["taskkill", "/f", "/im", f"{proc_name}*"] - else: - cmd = ["pkill", "-f", f"{proc_name}*"] + if Constants.IS_WINDOWS: + cmd = ["taskkill", "/f", "/im"] + else: + cmd = ["pkill", "-f"] - spec = px.TaskSpec( - name=f"kill_{proc_name}", - cmd=cmd, - verbose=not args.quiet, - ) - specs.append(spec) - - # 创建 Graph 并执行 - graph = px.Graph.from_specs(specs) - - try: - report = px.run( - graph, - strategy=args.strategy, - dry_run=args.dry_run, - verbose=not args.quiet, - ) - sys.exit(0 if report.success else 1) - except KeyboardInterrupt: - print("\n操作已取消", file=sys.stderr) - sys.exit(130) - except px.PyFlowXError as e: - print(f"错误: {e}", file=sys.stderr) - sys.exit(1) + graph = px.Graph.from_specs([ + px.TaskSpec(f"kill_{proc_name}", cmd=[*cmd, f"{proc_name}*"], verbose=True) for proc_name in args.process_names + ]) + px.run(graph, strategy="thread")