All engine functions are importable from the moveany.modules package.
batcher.split_into_batches(source, dest, exclusions, skip_top_dirs=None)- Split source tree into per-project batchesbatcher.get_batch_plan(source, dest, exclusions)- Get the batch plan as a dictionary
files_identical(path1, path2)- Check if two files are identical (size + SHA-256)files_copy_missing(compare_result, src, dest, reporter)- Copy missing/different files from compare result
mover.copy_missing(compare_result, src, dest, reporter)- Copy missing/different filesmover.delete_phase(ready, src, dest, reporter)- Delete files from source (after copy)mover.remove_empty_dirs(src, exclude_set, reporter)- Remove empty directories from source
paths.normalize(path)- Normalize a path (Windows UNC, symlink resolution)paths.safe_delete(path)- Safe delete with move-to-trash behavior
repair.repair_missing(compare_result, src_norm, dst_norm, reporter)- Re-copy missing/damaged files
Reporter(cls)- Base reporter class (subclass for CLI or GUI output)TextReporter(log_dir, log_callback)- Reporter extension for Tkinter Text widgets
safety.safety_check(source, dest, exclusions)- Perform safety checks before destructive operations
verify.compare(source, dest, exclusions, reporter, skip_top_dirs=None)- Compare two directory treesverify.report_compare(compare_result, reporter, label="compare")- Report comparison verdict
The CLI is a Click group with the following commands:
copy- Scan + copy missing/different files to dest (non-destructive)move- Scan, copy, then delete from sourceverify- Scan + compare contents; report verdictrepair- Re-copy damaged files from source to destdelete- Manual-only delete phase (re-verifies each file)list-batches- Show the batched copy/move plan without executingexclude- Manage exclusion directory names (add/remove/list)history- Show recent operations from the SQLite log (--json for JSON)config- Inspect and manage persistent configuration (show / reset)gui- Launch the Tkinter graphical user interface
launch_gui()- Entry point to launch the MoveAny GUI applicationMoveAnyGUI- Tkinter-based desktop application class
pyproject.toml- Project configuration, dependencies, entry pointsmoveany/__init__.py- Package initialization, version stringmoveany.cli:cli- Click entry point (moveanycommand)