zhou
|
529a024ea1
|
feat(cli): rich 深度集成 — 执行生命周期 ✓/✗/▸/○ 符号 + dry-run + 命令输出
CI / Lint, Typecheck & Test (push) Failing after 1m59s
|
2026-07-06 22:27:25 +08:00 |
|
zhou
|
4721b59f40
|
feat(cli): 重构CLI并添加富文本输出与版本/帮助优化
CI / Lint, Typecheck & Test (push) Failing after 5m41s
- 使用rich库重构工具列表展示为美观的表格形式
- 添加--version/-V参数显示版本号
- 新增未知工具的模糊匹配提示功能
- 统一使用标准错误输出和富文本样式打印错误信息
- 优化命令行参数处理逻辑,支持先解析help/version参数
|
2026-07-06 22:16:12 +08:00 |
|
zhou
|
fca6f17a5c
|
chore: 升级项目适配 Python 3.10+ 并重构代码
1. 移除对 Python 3.8/3.9 的支持,更新 tox、pyproject.toml 配置
2. 替换 typing 导入为 collections.abc 标准库类型
3. 重构 CLI 系统从 argparse 迁移到 typer
4. 优化代码格式与类型注解,修复多处类型兼容问题
5. 更新依赖声明,移除 graphlib_backport 兼容包
|
2026-07-06 22:14:59 +08:00 |
|
zhou
|
d493c6233e
|
docs(rules): 补充多阶段项目约束与更新规则说明
新增开发流程约束文档dev-workflow.md,完善self-driven.md中的多阶段项目规则,
补充阶段迭代、收尾的判定逻辑,修正目标达成的暂停条件说明
|
2026-07-06 21:16:07 +08:00 |
|
zhou
|
7a87a4177e
|
feat(ops): 新增 _common 共享辅助模块消除跨平台重复代码
CI / Lint, Typecheck & Test (push) Failing after 3m39s
新增 src/pyflowx/ops/_common.py 提供 platform_command/ensure_platform/IGNORE_PATTERNS 三个公共 API, 配套 12 个单元测试; 修复上个提交中 8 个 ops 模块引用缺失模块导致的 ImportError.
|
2026-07-06 20:40:38 +08:00 |
|
zhou
|
04d6871e8d
|
chore: 发布v0.4.8版本,清理冗余代码并优化跨平台实现
1. 移除folderzip和folderback模块中的默认导出函数与测试用例
2. 重构跨平台命令获取逻辑,统一使用platform_common工具函数
3. 移动IGNORE_PATTERNS常量到公共模块,精简packtool和autofmt代码
4. 重构平台检查逻辑,复用ensure_platform减少重复代码
5. 优化pdftool模块的依赖检查逻辑,提取公共检查函数
6. 修复测试用例中的字符串断言冗余内容
|
2026-07-06 20:22:59 +08:00 |
|
zhou
|
08149d990d
|
bump version to 0.4.8
CI / Lint, Typecheck & Test (push) Failing after 1m49s
Release / Build, Publish & Release (push) Successful in 46s
v0.4.8
|
2026-07-06 13:19:24 +08:00 |
|
zhou
|
54aef98f3a
|
chore(gittool): 新增ruff缓存目录到排除列表
CI / Lint, Typecheck & Test (push) Failing after 1m52s
将.ruff_cache添加到EXCLUDE_DIRS列表中,避免git工具扫描该缓存目录
|
2026-07-06 13:11:59 +08:00 |
|
zhou
|
e31646e281
|
feat: 新增envdev、gittool、msdownload、pymake工具模块及对应测试用例
新增四个业务工具模块:
1. envdev: 开发环境镜像源配置工具,支持Python/Conda/Rust镜像配置及Linux系统环境配置
2. gittool: Git操作工具,提供提交、初始化、清理、推送等快捷子命令
3. msdownload: ModelScope模型/数据集下载工具
4. pymake: 项目构建工具,覆盖构建、测试、发布等全流程开发操作
同时为每个工具模块编写了完整的注册验证与功能测试用例
|
2026-07-06 13:11:09 +08:00 |
|
zhou
|
f7fb95af83
|
refactor: 重构项目架构,移除YAML编排与旧注册系统
1. 将所有YAML配置的工具迁移到`@px.tool`装饰器实现
2. 拆分`llm`模块为`msdownload`和`sglang`子模块
3. 移除废弃的`registry.py`、`yaml_loader.py`和`yamlrun.py`模块
4. 清理项目依赖,移除PyYAML相关包
5. 更新文档与测试用例适配新架构
|
2026-07-06 13:04:57 +08:00 |
|
zhou
|
6da42ec5ff
|
refactor: 移除YAML配置,统一使用@px.tool装饰器实现CLI工具
1. 新增tools.py模块实现@px.tool装饰器与工具注册表
2. 将所有configs下的YAML工具迁移为ops/xxx.py模块形式
3. 重构cli路由逻辑,优先加载Python工具实现回退YAML
4. 删除所有YAML配置文件与旧的yaml_loader相关代码
5. 调整__init__.py导出API,移除YAML相关依赖
|
2026-07-06 07:53:22 +08:00 |
|
zhou
|
c55a37173a
|
test: 新增 YamlCliRunner 错误分支测试使覆盖率达标 95%
CI / Lint, Typecheck & Test (push) Successful in 3m5s
|
2026-07-05 22:25:15 +08:00 |
|
zhou
|
960b8672f4
|
test: 新增截图、PDF工具相关的单元测试
1. 新增Linux平台下截图工具回退到scrot的测试用例
2. 新增pdf加密、解密、重排、PDF转图片的完整测试用例
3. 补充各PDF工具未安装依赖时的分支测试
|
2026-07-05 22:21:47 +08:00 |
|
zhou
|
4fd1d70b58
|
test: 修复跨平台路径断言不兼容问题
1. 调整测试用例中的路径比较逻辑,统一替换反斜杠为正斜杠适配Windows平台
2. 将原生echo/true/false命令替换为跨平台的python执行命令,避免环境依赖问题
|
2026-07-05 22:18:16 +08:00 |
|
zhou
|
6fb9223066
|
fix: pymake bump 调用 pf bumpversion 而非已移除的外部 bumpversion 命令
CI / Lint, Typecheck & Test (push) Successful in 1m50s
|
2026-07-05 22:09:28 +08:00 |
|
zhou
|
1f7127357e
|
refactor: 将 cli/system、cli/llm、cli/dev 脚本迁移为 YAML 配置 + register_fn 模式
CI / Lint, Typecheck & Test (push) Successful in 1m44s
删除 cli/system (clearscreen/taskkill/which)、cli/llm (msdownload/sglang)、cli/dev (dockercmd/envdev) 三个目录; 新增 7 个 YAML 配置; 新增 ops/llm.py 模块; 扩展 ops/system.py 和 ops/dev.py; pf.py 添加工具别名; 删除 examples/ 目录
|
2026-07-05 21:12:41 +08:00 |
|
zhou
|
58ee84ded6
|
bump version to 0.4.7
CI / Lint, Typecheck & Test (push) Successful in 2m2s
Release / Build, Publish & Release (push) Successful in 1m5s
v0.4.7
|
2026-07-05 19:49:54 +08:00 |
|
zhou
|
9a96e5d052
|
fix: 修复 bump_project_version 版本号不同步跳号 bug 并抽离到独立模块
CI / Lint, Typecheck & Test (push) Successful in 1m26s
原实现对每个文件独立 +1, 文件版本号不同步时跳号; 改为先读取所有文件取 max 作为基准再统一写入. 同时修复 git add . 违规 (改按文件名) 与 check=False 吞错误. bumpversion 从 ops/dev.py 抽离到 ops/bumpversion.py, 测试简化为 16 个核心场景.
|
2026-07-05 19:34:44 +08:00 |
|
zhou
|
c9c7529c58
|
bump version to 0.4.6
CI / Lint, Typecheck & Test (push) Successful in 2m4s
Release / Build, Publish & Release (push) Successful in 46s
v0.4.6
|
2026-07-05 19:09:10 +08:00 |
|
zhou
|
c498d9b1c9
|
feat: 实现方向 B 聚合 job 并消除 pymake/reseticoncache CLI 入口
CI / Lint, Typecheck & Test (push) Successful in 2m3s
放宽 yaml_loader 校验允许有 needs 无 cmd/fn 的聚合 job, 完善 pymake.yaml 覆盖原 pymake.py 所有别名, 新增 reset_icon_cache_run fn 与 reseticoncache.yaml, 删除 pymake.py/reseticoncache.py 及对应 scripts 入口, 修复 --list 在 subcommands 模式下的可达性 bug.
|
2026-07-05 18:12:59 +08:00 |
|
zhou
|
b36e279f92
|
feat(cli): add pymake project build tool support
add pymake command alias to CLI, create pymake config yaml and move its legacy tool config out of _LEGACY_TOOLS dict
|
2026-07-05 17:45:08 +08:00 |
|
zhou
|
58d6f1faad
|
refactor: 迁移 cli/_ops/ 到 ops/, 按类别保持 dev/files/media/system 分类
CI / Lint, Typecheck & Test (push) Successful in 1m20s
将 src/pyflowx/cli/_ops/ 整体迁移至 src/pyflowx/ops/, 与 cli/ 平级
(工具函数非 CLI 专属, 可被 YAML 任务编排通用引用). 分类保持不变:
dev (git/pip/bump/autofmt), files (date/level/back/zip),
media (pdf/screenshot), system (ls/pack/ssh).
同步更新 15 个引用文件 (yaml_loader + 14 个测试) 的 import 路径,
README 模块结构表与 test_registry docstring.
|
2026-07-05 17:32:22 +08:00 |
|
zhou
|
d93da0d8b4
|
refactor: 迁移 cli/_ops/ 到 ops/, 按类别保持 dev/files/media/system 分类
CI / Lint, Typecheck & Test (push) Successful in 1m35s
将 src/pyflowx/cli/_ops/ 整体迁移至 src/pyflowx/ops/, 与 cli/ 平级
(工具函数非 CLI 专属, 可被 YAML 任务编排通用引用). 分类保持不变:
dev (git/pip/bump/autofmt), files (date/level/back/zip),
media (pdf/screenshot), system (ls/pack/ssh).
同步更新 15 个引用文件 (yaml_loader + 14 个测试) 的 import 路径,
README 模块结构表与 test_registry docstring.
|
2026-07-05 17:30:35 +08:00 |
|
zhou
|
701c455c42
|
refactor: 用 YamlCliRunner/PfApp class 封装 CLI 入口逻辑
CI / Lint & Typecheck (push) Failing after 11m31s
CI / Test (Python 3.11) (push) Failing after 6m1s
CI / Test (Python 3.13) (push) Failing after 12m44s
CI / Test (Python 3.8) (push) Failing after 12m2s
CI / Docs Build (push) Failing after 6m56s
yaml_loader.py 新增 YamlCliRunner class, 将 run_cli 的 90 行
流程拆为 run/_load_config/_add_global_options/_extract_variables/
_handle_list 等单一职责方法; run_cli 保留为薄包装 (公共 API).
pf.py 新增 PfApp class, 将 main 的路由逻辑拆为 run/_list_tools/
_resolve_tool/_run_legacy/_run_yaml 等方法; main 仅调用
PfApp().run().
附带修复 run_yaml 的 jobs=None 误报 bug: 原代码 jobs is None
时 raise ValueError, 但 None 本意是执行全部任务, 导致
pf folderzip 报 "jobs 不能为空".
|
2026-07-05 15:59:05 +08:00 |
|
zhou
|
e174b64495
|
refactor(cli): 重构配置文件路径并新增多工具配置
1. 移除旧的cli/configs/__init__.py占位文件
2. 修正pf.py中配置目录的路径指向
3. 新增folderzip、bumpversion等十余种工具的配置文件
4. 更新uv.lock中的依赖版本匹配规则
|
2026-07-05 15:50:18 +08:00 |
|
zhou
|
3afb25bb5e
|
fix: 修正 typing-extensions 依赖条件为 python_version < '3.13'
CI / Lint & Typecheck (push) Failing after 15m3s
CI / Test (Python 3.11) (push) Failing after 24m15s
CI / Test (Python 3.13) (push) Failing after 27m17s
CI / Test (Python 3.8) (push) Failing after 5m56s
CI / Docs Build (push) Failing after 31s
task.py 在 Python < 3.13 时需要 typing_extensions 的 TypeVar
(PEP 696 default= 参数), 此前条件 < '3.10' 导致 3.10-3.12
环境 import 失败, ReadTheDocs (Python 3.11) 构建报
ModuleNotFoundError: No module named 'typing_extensions'.
|
2026-07-05 13:16:24 +08:00 |
|
zhou
|
fbd17536fd
|
ci: 重写 CI/Release 为 GitHub 兼容版本并加文档构建
CI / Lint & Typecheck (push) Failing after 8m55s
CI / Test (Python 3.11) (push) Failing after 31s
CI / Test (Python 3.13) (push) Failing after 31s
CI / Test (Python 3.8) (push) Failing after 31s
CI / Docs Build (push) Failing after 31s
ci.yml 改用标准 actions (checkout/setup-uv/setup-python), 新增
pyrefly 类型检查、coverage 阈值检查 (>=95%)、Sphinx 文档构建三个
job, 多版本矩阵测试 (py38/py311/py313)。release.yml 改用标准
actions, 发布到 PyPI + GitHub Release (替代原 Gitea Release)。
|
2026-07-05 12:32:00 +08:00 |
|
zhou
|
32ca8c1208
|
docs: 搭建 Sphinx 文档站并清理死代码
CI / Lint, Typecheck & Test (push) Successful in 1m57s
1. 新建 docs/ Sphinx 文档结构 (conf.py + 8 个 rst 章节),
napoleon 支持 Google/NumPy docstring, rtd 主题,
自动生成 API 参考与错误家族文档
2. 新建 .readthedocs.yaml 配置, pyproject.toml 加 docs 依赖
3. 删除 runner.py 的 _apply_verbose_to_graph 死代码及对应测试
(功能已移入 executors.run 统一处理)
4. 更新 README: CLI 示例改为 pf 统一入口, 模块结构表补全
cli/pf.py/cli/configs/cli/_ops 等模块
5. 修复版本不一致 (pyproject.toml 0.3.5 → 0.4.5)
6. 加文档徽章链接到 ReadTheDocs
|
2026-07-05 12:17:10 +08:00 |
|
zhou
|
a7ff68d279
|
feat: pf 默认显示 verbose 执行过程, --quiet 关闭
CI / Lint, Typecheck & Test (push) Successful in 1m17s
run() 在 verbose=True 时自动把 verbose 标记应用到所有 spec,
使 execute_command 打印执行命令与返回码 (此前只 callback 打印
任务生命周期)。全局选项 --verbose 改为 --quiet (默认 verbose=True,
传 --quiet 关闭)。gittool CLEAN_EXCLUDES 补全 .pytest_cache/
.ruff_cache/.vscode/.trae/.qoder/.editorconfig 等目录。
|
2026-07-05 08:46:15 +08:00 |
|
zhou
|
de368ea810
|
refactor: 删除冗余 cli 入口脚本, gittool 用数组配置 clean excludes
CI / Lint, Typecheck & Test (push) Successful in 1m11s
1. 删除 13 个已有 YAML 配置的 cli .py 入口脚本, 统一通过 pf 调用
2. gittool.yaml 用 CLEAN_EXCLUDES 数组变量配置 git clean 的 -e 参数,
保留 .venv/.tox/node_modules/.idea 等目录避免误删
3. run_cli 执行前打印调用信息: [gittool] 执行: c
4. 更新 pyproject.toml 移除 13 个冗余 entry points, 仅保留 pf
5. 清理测试文件中的 TestMain 类 (测 _ops 模块的测试保留)
|
2026-07-05 08:39:20 +08:00 |
|
zhou
|
6a3e3a57cd
|
fix: cmd 任务成功时打印 stdout
CI / Lint, Typecheck & Test (push) Failing after 50s
execute_command 在非 verbose 模式下捕获 stdout 后直接 return None,
导致 git status --porcelain 等命令的输出被丢弃。
现在成功时若有 stdout 则打印到终端, 保留失败时的 stderr 信息。
|
2026-07-05 00:52:38 +08:00 |
|
zhou
|
7089944306
|
build: 调整pyproject.toml中pf命令的脚本位置
将pf命令的脚本配置移至文件末尾,修正脚本条目排序
|
2026-07-05 00:50:16 +08:00 |
|
zhou
|
ec5e348694
|
feat: 新增 pf 统一入口, YAML 配置自带 CLI 参数定义
CI / Lint, Typecheck & Test (push) Failing after 47s
新增 pf 统一 CLI 入口, 通过 YAML 的 cli: 段定义参数解析规则,
逐步消除工具 .py 入口文件。yaml_loader 新增 build_cli_parser
和 run_cli 函数, 支持 subcommands/positional/options 三级 schema,
内置 --dry-run/--verbose/--strategy/--list 全局选项。
13 个工具 YAML 配置全部添加 cli: 段。
|
2026-07-04 20:31:40 +08:00 |
|
zhou
|
12d9f2f647
|
fix: 恢复 gittool 条件逻辑,修复 has_files 检查 git status
CI / Lint, Typecheck & Test (push) Successful in 1m56s
将 gitt a/i 命令改用 fn job 包装(git_add_commit/git_init_add_commit),
内部检查 has_files() 和 not_has_git_repo() 条件,避免无更改时 git commit
报错。修正 has_files() 实现为检查 git status --porcelain 而非目录文件。
|
2026-07-04 20:00:25 +08:00 |
|
zhou
|
6ffcbecade
|
chore: update
|
2026-07-04 19:57:20 +08:00 |
|
zhou
|
e76d93187b
|
chore: update
|
2026-07-04 19:55:09 +08:00 |
|
zhou
|
52e20e3f93
|
style: 统一调整代码格式,将单行列表展开为多行缩进格式
|
2026-07-04 19:49:10 +08:00 |
|
zhou
|
3f966a230e
|
refactor: 简化 CLI 工具入口为 YAML 加载器
CI / Lint, Typecheck & Test (push) Successful in 2m5s
将 13 个工具入口文件重构为通过 px.run_yaml 调用 YAML 配置,
辅助函数移至 _ops 模块。新增 run_yaml 便捷函数支持 job 选择
和传递依赖收集,修复 _build_cmd 列表变量展开,新增 bump_project_version
高层函数封装版本号更新+git 提交流程。
|
2026-07-04 19:35:08 +08:00 |
|
zhou
|
5d0b211a44
|
feat: 新增 13 个 CLI 工具的 YAML 配置并修复 _ops 函数注册
CI / Lint, Typecheck & Test (push) Successful in 1m41s
- 在 cli/configs/ 下创建 13 个 YAML 工作流配置, 覆盖 filedate/filelevel/folderback/
folderzip/autofmt/bumpversion/piptool/gittool/pdftool/screenshot/lscalc/
sshcopyid/packtool 工具, 共 51 个 job (cmd 与 fn 混合)
- yaml_loader 模块级导入 _ops 子模块, 使 YAML fn 字段可引用注册函数,
try/except 守卫避免最小安装场景下的 ImportError
- 修复 test_registry 的 clear_registry fixture: 保存/恢复 _REGISTRY 原始状态,
避免 teardown 清空 _ops 自动注册的函数导致 TestOpsModules 失败
|
2026-07-04 18:35:20 +08:00 |
|
zhou
|
6931f36fd1
|
feat: 新增函数注册机制与 CLI 工具函数模块
CI / Lint, Typecheck & Test (push) Successful in 2m27s
- 新增 registry.py 提供 register_fn/get_fn/has_fn 函数注册机制, 支持 @register_fn 和 @register_fn("name") 两种用法
- 新增 cli/_ops 包 (files/dev/media/system 四个子模块), 聚合 59 个可复用函数供 YAML fn 字段引用
- 扩展 yaml_loader 支持 fn 字段、args/kwargs 传参、${VAR} 变量占位符
- 新增 test_registry.py (20 个测试) 和扩展 test_yaml_loader.py
- 更新自驱动规则: 自动 commit+push, 删除需要用户明确指示的步骤
|
2026-07-04 18:24:52 +08:00 |
|
zhou
|
db02443463
|
feat: 新增 YAML 任务编排功能
1. 新增 yaml_loader 模块,支持加载 GitHub Actions 风格的 YAML 任务图
2. 新增 Graph.from_yaml 静态方法,支持从 YAML 文件构建任务图
3. 新增 yamlrun CLI 工具,支持执行、预览 YAML 任务流水线
4. 添加 pyyaml 运行时依赖与 types-PyYAML 开发依赖
5. 更新 README 文档与对外暴露的 API 接口
|
2026-07-04 16:00:04 +08:00 |
|
zhou
|
eb8e1402bc
|
docs: 更新自驱动规则文档,补充决策判据与细节
补充自主决策的具体范围、收尾规则,新增决策判据章节,细化暂停条件与沟通要求
|
2026-07-04 15:29:47 +08:00 |
|
zhou
|
c93f45dcb8
|
refactor: 统一使用px.task/px.cmd替代旧版TaskSpec创建任务
本次提交将项目内所有使用px.TaskSpec创建任务的代码,替换为新的px.task和px.cmd快捷API,简化了任务定义写法,同时更新了版本号到0.3.5。重构过程中保持了原有功能逻辑不变,仅调整了代码书写格式,提升了代码可读性和编写效率。
|
2026-07-04 15:22:27 +08:00 |
|
zhou
|
a0b1814024
|
style: 格式化sshcopyid.py的列表代码,提升可读性
调整了px.Graph.from_specs的参数列表排版,将多行列表缩进优化为更简洁的单行展开格式,不改变代码实际功能。
|
2026-07-04 13:43:33 +08:00 |
|
zhou
|
3a2826d3f9
|
bump version to 0.3.5
CI / Lint, Typecheck & Test (push) Successful in 1m47s
Release / Build, Publish & Release (push) Successful in 1m2s
v0.3.5
|
2026-07-04 11:36:07 +08:00 |
|
zhou
|
dbd30689ab
|
chore(ci): 更新release工作流的gitea服务地址
将GITEA_URL从10.0.16.16:3000调整为172.17.0.1:3000,适配新的内网部署地址
|
2026-07-04 11:36:04 +08:00 |
|
zhou
|
5eb59b8a66
|
bump version to 0.3.4
CI / Lint, Typecheck & Test (push) Successful in 1m8s
Release / Build, Publish & Release (push) Failing after 30s
v0.3.4
|
2026-07-04 11:24:11 +08:00 |
|
zhou
|
8e7b866de2
|
更新 .github/workflows/release.yml
CI / Lint, Typecheck & Test (push) Has been cancelled
|
2026-07-04 03:23:16 +00:00 |
|
zhou
|
1b4f9bfa6a
|
bump version to 0.3.3
CI / Lint, Typecheck & Test (push) Successful in 1m8s
Release / Build, Publish & Release (push) Has been cancelled
v0.3.3
|
2026-07-04 11:16:31 +08:00 |
|
zhou
|
2d39272330
|
ci(github workflows): update pypi api token secret name
将PyPI发布步骤中的密钥变量名从PYPI_API_TOKEN改为PYPI_TOKEN,保持配置一致性
|
2026-07-04 11:16:24 +08:00 |
|