Conversation
New automation_file.trigger package wraps watchdog observers behind a TriggerManager singleton. FA_watch_start / FA_watch_stop / FA_watch_stop_all / FA_watch_list are auto-registered in build_default_registry so triggered action lists dispatch through the shared executor. Triggers tab in the main window drives the same lifecycle from the GUI.
New automation_file.scheduler package parses 5-field cron expressions (stdlib-only, supports *, ranges, lists, and step syntax with month / DoW aliases) and drives a background thread that dispatches each job's action list on minute-boundary ticks. FA_schedule_add / FA_schedule_remove / FA_schedule_remove_all / FA_schedule_list are auto-registered alongside the other FA_* actions. Scheduler tab in the main window drives the same lifecycle from the GUI.
New automation_file.core.progress module exposes CancellationToken, ProgressReporter, and a module-level ProgressRegistry keyed by a user-chosen name. download_file and the S3 upload / download ops accept an optional progress_name kwarg that wires a reporter + token through the transfer loop, so the GUI or a JSON action can poll status or cancel mid-flight. FA_progress_list / FA_progress_cancel / FA_progress_clear are auto-registered alongside the other FA_* actions. Progress tab in the main window drives the same lifecycle from the GUI.
Runs nodes in dependency order with a shared thread pool, parallelising independent branches. Validates cycles, unknown deps, self-deps, and duplicate ids up-front. On node failure, transitive dependents are marked skipped (fail_fast=True) or still run (fail_fast=False).
Third-party packages advertising 'automation_file.actions' entry points
are loaded by build_default_registry() so their commands land in every
freshly-built registry. Each plugin entry point resolves to a
zero-argument factory returning a {name: callable} mapping.
Plugin failures (load, factory, bad return shape, registry rejection)
are logged and swallowed so one broken plugin cannot break the library
for other callers.
Add usage sections and architecture/API references for file_checksum / verify_checksum, resumable HTTP downloads, find_duplicates, execute_action_dag, and entry-point plugin discovery. All three language READMEs carry the same feature bullets and examples.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Summary
Highlights
FA_run_shell,FA_grep,FA_json_{get,set,delete},FA_create_tar/FA_extract_tar,FA_rotate_backups,FA_ftp_*,FA_copy_between,FA_if_exists/FA_if_newer/FA_if_size_gt,FA_encrypt_file/FA_decrypt_file${env:…}/${date:…}/${uuid}/${cwd}); per-action Prometheus metrics; scheduler overlap guardallowed_actions=…) for both TCP and HTTP serversAuditLog(SQLite),IntegrityMonitor,start_metrics_server,ConfigWatcherhot reloadHTTPActionClientwith loopback enforcement, Bearer auth, OPTIONS-based pingcryptography>=42added as a depTest plan
python -m pytest tests/ -v(497 tests)ruff check automation_file/ tests/ruff format --check automation_file/ tests/mypy automation_file/sphinx-build -b html docs/source docs/_build/htmlpython -m automation_file uiloads and each tab rendersstart_metrics_server()serves/metricsand records at least one action