Python module for rclone, taken from https://github.com/ddragosd/python-rclone and adapted to my personal requirements
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
Dragos Dascalita Haut 3b5cde07ca updated package setup 2 years ago
.gitignore updated package setup 2 years ago
.travis.yml updated travis build 2 years ago
LICENSE.txt work in progress 2 years ago
Makefile updated package setup 2 years ago
README.md updated package setup 2 years ago
rclone.py pylint updates 2 years ago
rclone_test.py pylint updates 2 years ago
requirements.txt updated package setup 2 years ago
setup.py updated package setup 2 years ago

README.md

python-rclone

License Build Status

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