asynchronous generic cloud drive library
Project description
wcpan.drive
Asynchronous generic cloud drive library.
This package needs a driver to actually work with a cloud drive.
Example Usage
from wcpan.drive.core.drive import (
DriveFactory, download_to_local, upload_from_local,
)
async def simple_demo():
# Load config and data from default locations.
factory = DriveFactory()
factory.load_config()
async with factory() as drive:
# Check for authorization.
if not await drive.is_authorized():
# Start OAuth 2.0 process
url = await drive.get_oauth_url()
# ... The user visits the url ...
# Get tokens from the user.
token = ...
# Finish OAuth 2.0 process.
await drive.set_oauth_token(token)
# It is important to keep cache in sync.
async for change in drive.sync():
print(change)
# Get the root node.
root_node = await drive.get_root_node()
# Get a node.
node = await drive.get_node_by_path('/path/to/drive/file')
# List children.
children = await drive.get_children(root_node)
# Make a folder.
new_folder = await drive.create_folder(root_node, 'folder_name')
# Download file.
await download_to_local(drive, node, '/tmp')
# Upload file.
new_file = await upload_from_local(drive, root_node, '/path/to/local/file')
# Traverse drive.
async for root, folders, files in drive.walk(root_node):
print(root, folders, files)
async def config_demo():
factory = DriveFactory()
# Read config files from here.
# The default is $HOME/.config/wcpan.drive.
# These files are what you want to keep and backup.
factory.config_path = '/tmp/config'
# Put generated files here.
# The default is $HOME/.local/share/wcpan.drive.
# These files should be safely deleted.
factory.data_path = '/tmp/data'
# Setup cache database, will write to data folder.
factory.database = 'nodes.sqlite'
# Setup driver class.
factory.driver = 'some.random.driver.RandomDriver'
# load config file from config folder
# this will not overwrite the above given values
factory.load_config()
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
wcpan.drive.core-3.0.1.tar.gz
(19.1 kB
view details)
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file wcpan.drive.core-3.0.1.tar.gz.
File metadata
- Download URL: wcpan.drive.core-3.0.1.tar.gz
- Upload date:
- Size: 19.1 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/3.6.0 importlib_metadata/4.8.2 pkginfo/1.8.1 requests/2.26.0 requests-toolbelt/0.9.1 tqdm/4.62.3 CPython/3.9.7
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
3723502220fc396370f304ad25d447e367465a4f1db5a3b85a1fd60cac9b87fc
|
|
| MD5 |
3ad6aaf46d974a5ca35e04250a2ffd3e
|
|
| BLAKE2b-256 |
76486ab85f82b43a6dce495d07bcb04eddf51f5465b59917ad1550a0b6af1bbf
|
File details
Details for the file wcpan.drive.core-3.0.1-py3-none-any.whl.
File metadata
- Download URL: wcpan.drive.core-3.0.1-py3-none-any.whl
- Upload date:
- Size: 21.8 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/3.6.0 importlib_metadata/4.8.2 pkginfo/1.8.1 requests/2.26.0 requests-toolbelt/0.9.1 tqdm/4.62.3 CPython/3.9.7
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
6477834e55e0a66dfd76610dcaf2d4859117172311a8af2f43740f91e87c2679
|
|
| MD5 |
c8c0b42c5da5d5f63f1a41113d0aefc8
|
|
| BLAKE2b-256 |
0264cb1f40a391b106864d8f447ab252f7132ca44053c48981fdf7095a49a0f2
|