python-rclone
python-rclone copied to clipboard
Python module for rclone
python-rclone
A Python wrapper for rclone.
rclone
must be already installed and discoverable in $PATH
.
Status
Work in progress. Experimental.
Usage
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''
Implemented commands:
-
copy
Copy files from source to dest, skipping already copied -
sync
Make source and dest identical, modifying destination only. -
listremotes
List all the remotes in the config file. -
ls
List the objects in the path with size and path. -
lsjson
List directories and objects in the path in JSON format. -
delete
Remove 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()
Developer guide
$ pip install -r requirements.txt
$ make test