A Python wrapper for rclone.
rclone must be already installed and discoverable in $PATH.
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 copiedsyncMake 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"])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