From b41dfdbaa1489d37a7e8ab559b9a92ab71222dee Mon Sep 17 00:00:00 2001 From: JeffreyChen Date: Tue, 28 Apr 2026 16:20:11 +0800 Subject: [PATCH] Split usage docs into chapters and add MCP guide Restructure docs/source, docs/source.zh-CN, docs/source.zh-TW so the monolithic usage.rst becomes a usage/ section directory grouped by topic (getting started, local & transfer, servers & integrations, reliability & events, configuration & extension). Add a dedicated MCP chapter for each language documenting Claude Desktop and Claude Code integration. --- docs/source.zh-CN/index.rst | 4 +- docs/source.zh-CN/usage.rst | 557 --------------------- docs/source.zh-CN/usage/cli.rst | 25 + docs/source.zh-CN/usage/cloud.rst | 60 +++ docs/source.zh-CN/usage/config.rst | 45 ++ docs/source.zh-CN/usage/dag.rst | 28 ++ docs/source.zh-CN/usage/events.rst | 58 +++ docs/source.zh-CN/usage/gui.rst | 24 + docs/source.zh-CN/usage/index.rst | 43 ++ docs/source.zh-CN/usage/local.rst | 122 +++++ docs/source.zh-CN/usage/mcp.rst | 189 +++++++ docs/source.zh-CN/usage/notifications.rst | 27 + docs/source.zh-CN/usage/plugins.rst | 50 ++ docs/source.zh-CN/usage/quickstart.rst | 65 +++ docs/source.zh-CN/usage/reliability.rst | 33 ++ docs/source.zh-CN/usage/servers.rst | 46 ++ docs/source.zh-CN/usage/transfer.rst | 51 ++ docs/source.zh-TW/index.rst | 4 +- docs/source.zh-TW/usage.rst | 557 --------------------- docs/source.zh-TW/usage/cli.rst | 25 + docs/source.zh-TW/usage/cloud.rst | 60 +++ docs/source.zh-TW/usage/config.rst | 45 ++ docs/source.zh-TW/usage/dag.rst | 28 ++ docs/source.zh-TW/usage/events.rst | 58 +++ docs/source.zh-TW/usage/gui.rst | 24 + docs/source.zh-TW/usage/index.rst | 43 ++ docs/source.zh-TW/usage/local.rst | 122 +++++ docs/source.zh-TW/usage/mcp.rst | 189 +++++++ docs/source.zh-TW/usage/notifications.rst | 27 + docs/source.zh-TW/usage/plugins.rst | 50 ++ docs/source.zh-TW/usage/quickstart.rst | 65 +++ docs/source.zh-TW/usage/reliability.rst | 33 ++ docs/source.zh-TW/usage/servers.rst | 46 ++ docs/source.zh-TW/usage/transfer.rst | 51 ++ docs/source/index.rst | 4 +- docs/source/usage.rst | 581 ---------------------- docs/source/usage/cli.rst | 25 + docs/source/usage/cloud.rst | 62 +++ docs/source/usage/config.rst | 46 ++ docs/source/usage/dag.rst | 28 ++ docs/source/usage/events.rst | 58 +++ docs/source/usage/gui.rst | 25 + docs/source/usage/index.rst | 44 ++ docs/source/usage/local.rst | 129 +++++ docs/source/usage/mcp.rst | 204 ++++++++ docs/source/usage/notifications.rst | 29 ++ docs/source/usage/plugins.rst | 53 ++ docs/source/usage/quickstart.rst | 65 +++ docs/source/usage/reliability.rst | 33 ++ docs/source/usage/servers.rst | 48 ++ docs/source/usage/transfer.rst | 54 ++ 51 files changed, 2641 insertions(+), 1701 deletions(-) delete mode 100644 docs/source.zh-CN/usage.rst create mode 100644 docs/source.zh-CN/usage/cli.rst create mode 100644 docs/source.zh-CN/usage/cloud.rst create mode 100644 docs/source.zh-CN/usage/config.rst create mode 100644 docs/source.zh-CN/usage/dag.rst create mode 100644 docs/source.zh-CN/usage/events.rst create mode 100644 docs/source.zh-CN/usage/gui.rst create mode 100644 docs/source.zh-CN/usage/index.rst create mode 100644 docs/source.zh-CN/usage/local.rst create mode 100644 docs/source.zh-CN/usage/mcp.rst create mode 100644 docs/source.zh-CN/usage/notifications.rst create mode 100644 docs/source.zh-CN/usage/plugins.rst create mode 100644 docs/source.zh-CN/usage/quickstart.rst create mode 100644 docs/source.zh-CN/usage/reliability.rst create mode 100644 docs/source.zh-CN/usage/servers.rst create mode 100644 docs/source.zh-CN/usage/transfer.rst delete mode 100644 docs/source.zh-TW/usage.rst create mode 100644 docs/source.zh-TW/usage/cli.rst create mode 100644 docs/source.zh-TW/usage/cloud.rst create mode 100644 docs/source.zh-TW/usage/config.rst create mode 100644 docs/source.zh-TW/usage/dag.rst create mode 100644 docs/source.zh-TW/usage/events.rst create mode 100644 docs/source.zh-TW/usage/gui.rst create mode 100644 docs/source.zh-TW/usage/index.rst create mode 100644 docs/source.zh-TW/usage/local.rst create mode 100644 docs/source.zh-TW/usage/mcp.rst create mode 100644 docs/source.zh-TW/usage/notifications.rst create mode 100644 docs/source.zh-TW/usage/plugins.rst create mode 100644 docs/source.zh-TW/usage/quickstart.rst create mode 100644 docs/source.zh-TW/usage/reliability.rst create mode 100644 docs/source.zh-TW/usage/servers.rst create mode 100644 docs/source.zh-TW/usage/transfer.rst delete mode 100644 docs/source/usage.rst create mode 100644 docs/source/usage/cli.rst create mode 100644 docs/source/usage/cloud.rst create mode 100644 docs/source/usage/config.rst create mode 100644 docs/source/usage/dag.rst create mode 100644 docs/source/usage/events.rst create mode 100644 docs/source/usage/gui.rst create mode 100644 docs/source/usage/index.rst create mode 100644 docs/source/usage/local.rst create mode 100644 docs/source/usage/mcp.rst create mode 100644 docs/source/usage/notifications.rst create mode 100644 docs/source/usage/plugins.rst create mode 100644 docs/source/usage/quickstart.rst create mode 100644 docs/source/usage/reliability.rst create mode 100644 docs/source/usage/servers.rst create mode 100644 docs/source/usage/transfer.rst diff --git a/docs/source.zh-CN/index.rst b/docs/source.zh-CN/index.rst index ecc2c05..39a3946 100644 --- a/docs/source.zh-CN/index.rst +++ b/docs/source.zh-CN/index.rst @@ -159,10 +159,10 @@ JSON 动作列表就是上述 list 的 list。 .. toctree:: :maxdepth: 2 - :caption: 目录 + :caption: 文档 architecture - usage + usage/index api/index 索引 diff --git a/docs/source.zh-CN/usage.rst b/docs/source.zh-CN/usage.rst deleted file mode 100644 index 7f80669..0000000 --- a/docs/source.zh-CN/usage.rst +++ /dev/null @@ -1,557 +0,0 @@ -使用指南 -======== - -JSON 动作列表 -------------- - -动作可采用三种形状之一: - -.. code-block:: json - - ["FA_name"] - ["FA_name", {"kwarg": "value"}] - ["FA_name", ["positional", "args"]] - -动作列表是动作的数组。执行器按顺序执行并返回 -``"execute[]: " -> result | repr(error)`` 的映射表。 - -.. code-block:: python - - from automation_file import execute_action, read_action_json - - results = execute_action([ - ["FA_create_dir", {"dir_path": "build"}], - ["FA_create_file", {"file_path": "build/hello.txt", "content": "hi"}], - ["FA_zip_dir", {"dir_we_want_to_zip": "build", "zip_name": "build_snapshot"}], - ]) - - # 或从文件读入: - results = execute_action(read_action_json("actions.json")) - -校验、dry-run、并行执行 ------------------------ - -.. code-block:: python - - from automation_file import ( - execute_action, execute_action_parallel, validate_action, - ) - - # Fail-fast 校验:若有未知名称,执行前即中止整批。 - execute_action(actions, validate_first=True) - - # Dry-run:记录将调用什么但不实际调用。 - execute_action(actions, dry_run=True) - - # 并行:通过线程池执行彼此独立的动作。 - execute_action_parallel(actions, max_workers=4) - - # 手动校验——返回已解析的名称列表。 - names = validate_action(actions) - -CLI ---- - -执行 JSON 动作列表的旧式参数:: - - python -m automation_file --execute_file actions.json - python -m automation_file --execute_dir ./actions/ - python -m automation_file --execute_str '[["FA_create_dir",{"dir_path":"x"}]]' - python -m automation_file --create_project ./my_project - -一次性操作的子命令:: - - python -m automation_file ui - python -m automation_file zip ./src out.zip --dir - python -m automation_file unzip out.zip ./restored - python -m automation_file download https://example.com/file.bin file.bin - python -m automation_file create-file hello.txt --content "hi" - python -m automation_file server --host 127.0.0.1 --port 9943 - python -m automation_file http-server --host 127.0.0.1 --port 9944 - python -m automation_file drive-upload my.txt --token token.json --credentials creds.json - -Google Drive ------------- - -.. code-block:: python - - from automation_file import driver_instance, drive_upload_to_drive - - driver_instance.later_init("token.json", "credentials.json") - drive_upload_to_drive("example.txt") - -TCP 动作服务器 --------------- - -.. code-block:: python - - from automation_file import start_autocontrol_socket_server - - server = start_autocontrol_socket_server( - host="localhost", port=9943, shared_secret="optional-secret", - ) - # 稍后: - server.shutdown() - server.server_close() - -设置 ``shared_secret`` 后,客户端必须在 JSON 动作列表之前加上 -``AUTH \\n`` 前缀。服务器默认仍绑定 loopback,除非显式传入 -``allow_non_loopback=True``,否则拒绝非 loopback 绑定。 - -HTTP 动作服务器 ---------------- - -.. code-block:: python - - from automation_file import start_http_action_server - - server = start_http_action_server( - host="127.0.0.1", port=9944, shared_secret="optional-secret", - ) - - # 客户端: - # curl -H 'Authorization: Bearer optional-secret' \ - # -d '[["FA_create_dir",{"dir_path":"x"}]]' \ - # http://127.0.0.1:9944/actions - -HTTP 响应为 JSON。设置 ``shared_secret`` 后,客户端必须发送 -``Authorization: Bearer ``。 - -可靠性 ------- - -对自定义的可调用对象应用重试: - -.. code-block:: python - - from automation_file import retry_on_transient - - @retry_on_transient(max_attempts=5, backoff_base=0.5) - def flaky_network_call(): ... - -对单个动作应用配额限制: - -.. code-block:: python - - from automation_file import Quota - - quota = Quota(max_bytes=50 * 1024 * 1024, max_seconds=30.0) - with quota.time_budget("bulk-upload"): - bulk_upload_work() - -路径安全 --------- - -.. code-block:: python - - from automation_file import safe_join - - target = safe_join("/data/jobs", user_supplied_path) - # -> 若解析后的路径逃出 /data/jobs,会抛出 PathTraversalException。 - -云端 / SFTP 后端 ----------------- - -每个后端(S3、Azure Blob、Dropbox、SFTP)都随 ``automation_file`` 一并打包, -并由 :func:`~automation_file.core.action_registry.build_default_registry` -自动注册。不需要额外安装步骤——对单例调用 ``later_init`` 即可: - -.. code-block:: python - - from automation_file import execute_action, s3_instance - - s3_instance.later_init(region_name="us-east-1") - - execute_action([ - ["FA_s3_upload_file", {"local_path": "report.csv", "bucket": "reports", "key": "report.csv"}], - ]) - -所有后端都提供相同的五个操作: -``upload_file``、``upload_dir``、``download_file``、``delete_*``、``list_*``。 -``register__ops(registry)`` 依然公开,供自行建立注册表的调用方使用。 - -SFTP 特别使用 :class:`paramiko.RejectPolicy`——未知主机会被拒绝而非自动添加。 -请显式提供 ``known_hosts``,或依赖 ``~/.ssh/known_hosts``。 - -文件监视触发器 --------------- - -当被监视路径发生文件系统事件时执行动作列表。模块级的 -:data:`~automation_file.trigger.trigger_manager` 以名称为键维护一组活动 -watcher,让 JSON 接口与 GUI 共享同一个生命周期。 - -.. code-block:: python - - from automation_file import watch_start, watch_stop - - watch_start( - name="inbox-sweeper", - path="/data/inbox", - action_list=[["FA_copy_all_file_to_dir", {"source_dir": "/data/inbox", - "target_dir": "/data/processed"}]], - events=["created", "modified"], - recursive=False, - ) - # 稍后: - watch_stop("inbox-sweeper") - -也可以通过 JSON 动作列表以 ``FA_watch_start`` / ``FA_watch_stop`` / -``FA_watch_stop_all`` / ``FA_watch_list`` 操作。 - -Cron 调度器 ------------ - -按周期性调度执行动作列表。5 字段 cron 解析器支持 ``*``、精确值、``a-b`` -范围、逗号分隔列表与 ``*/n`` 步进语法,并能使用 ``jan``..``dec`` / -``sun``..``sat`` 别名。 - -.. code-block:: python - - from automation_file import schedule_add - - schedule_add( - name="nightly-snapshot", - cron_expression="0 2 * * *", # 每日本地时间 02:00 - action_list=[["FA_zip_dir", {"dir_we_want_to_zip": "/data", - "zip_name": "/backup/data_nightly"}]], - ) - -后台线程在分钟边界唤醒,因此不支持秒级精度的表达式。可通过 JSON 使用 -``FA_schedule_add`` / ``FA_schedule_remove`` / ``FA_schedule_remove_all`` / -``FA_schedule_list``。 - -传输进度与取消 --------------- - -对 :func:`download_file`、:func:`s3_upload_file` 或 :func:`s3_download_file` -传入 ``progress_name="