Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/ddragosd/python-rclone
Python module for rclone
https://github.com/ddragosd/python-rclone
Last synced: 7 days ago
JSON representation
Python module for rclone
- Host: GitHub
- URL: https://github.com/ddragosd/python-rclone
- Owner: ddragosd
- License: apache-2.0
- Created: 2018-09-23T09:29:40.000Z (about 6 years ago)
- Default Branch: master
- Last Pushed: 2021-12-30T20:51:13.000Z (almost 3 years ago)
- Last Synced: 2024-08-02T16:51:54.126Z (3 months ago)
- Language: Python
- Size: 19.5 KB
- Stars: 80
- Watchers: 5
- Forks: 17
- Open Issues: 5
-
Metadata Files:
- Readme: README.md
- License: LICENSE.txt
Awesome Lists containing this project
README
# python-rclone
[![License](https://img.shields.io/badge/license-Apache--2.0-blue.svg)](http://www.apache.org/licenses/LICENSE-2.0)
[![Build Status](https://travis-ci.org/ddragosd/python-rclone.svg?branch=master)](https://travis-ci.org/ddragosd/python-rclone)A Python wrapper for [rclone](https://rclone.org/).
`rclone` must be already [installed](https://rclone.org/install/) and discoverable in `$PATH`.
## Status
Work in progress. Experimental.## Usage
```python
import rclonecfg = """[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:
```python
import rclonecfg = """[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:
```python
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
```bash
$ pip install -r requirements.txt
$ make test
```