Synchronize files to a destination(local/remote) using a incremental algorithm
Project description
blocksync
This library allows blocksync script to be used as Python package, and supports more convenient and various functions than blocksync script.
Prerequisites
- Python 3.8 or later
Features
- Synchronize the destination (remote or local) files using an incremental algorithm.
- Supports all synchronization directions. (local-local, local-remote, remote-local)
- Support for callbacks that can run before(run once or per workers), after(run once or per workers), and during synchronization of files
- Support for synchronization suspend/resume, cancel.
- Most methods support method chaining.
- You can see the overall progress in a multi-threaded environment.
- You can proceed synchronization in the background.
- You can specify the number of workers (number of threads) to perform synchronization.
Installation
pip install blocksync
Quick start
When sync from/to remote, you can check the SSH connection options in paramiko docs.
from blocksync import local_to_local
manager, status = local_to_local("src.txt", "dest.txt", workers=4)
manager.wait_sync()
print(status)
# Output
[Worker 1]: Start sync(src.txt -> dest.txt) 1 blocks
[Worker 2]: Start sync(src.txt -> dest.txt) 1 blocks
[Worker 3]: Start sync(src.txt -> dest.txt) 1 blocks
[Worker 4]: Start sync(src.txt -> dest.txt) 1 blocks
{'workers': 4, 'chunk_size': 250, 'block_size': 250, 'src_size': 1000, 'dest_size': 1000, 'blocks': {'same': 4, 'diff': 0, 'done': 4}}
TODO
- Provide CLI
- Write docs and build a docs website
License
MIT License (For more information about this license, please see this)
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
blocksync-3.0.1.tar.gz
(9.2 kB
view hashes)