A Python wrapper for rclone.
rclone must be already installed and discoverable in
Work in progress. Experimental.
import rclone cfg = """[local] type = local nounc = true""" result = rclone.with_config(cfg).listremotes() print(result.get('out')) # b'local:\n' print(result.get('code')) # 0 print(result.get('error')) # b''
copyCopy files from source to dest, skipping already copied
syncMake source and dest identical, modifying destination only.
listremotesList all the remotes in the config file.
lsList the objects in the path with size and path.
lsjsonList directories and objects in the path in JSON format.
deleteRemove the contents of path.
Even if not all
rclone commands have been exposed, it's possible to invoke any command using
run_cmd method directly, as shown in the example bellow:
import rclone cfg = """[local] type = local nounc = true""" result = rclone.with_config(cfg).run_cmd(command="lsd", extra_args=["local:/tmp", "-v", "--dry-run"])
Logging and Debugging
To see more info about which commands are executed, or what other messages they print, you can enable logging as the example bellow shows:
import logging logging.basicConfig( level=logging.DEBUG, format="%(asctime)s %(name)s [%(levelname)s]: %(message)s") import rclone cfg = """[local] type = local nounc = true""" result = rclone.with_config(cfg).listremotes()
$ pip install -r requirements.txt $ make test