Skip to main content

asynchronous generic cloud drive library

Project description

wcpan.drive

Asynchronous generic cloud drive library.

This package only provides the core functionality. It need SnapsnotService and FileService implementation to work.

Example Usage

from wcpan.drive.core import create_drive
from wcpan.drive.core.types import (
    CreateFileService,
    CreateSnapshotService,
)
from wcpan.drive.core.lib import (
    download_file_to_local,
    upload_file_from_local,
)


# Assumes we already know how to create FileService and SnapshotService.
async def simple_demo(
    create_file_service: CreateFileService,
    create_snapshot_service: CreateSnapshotService,
):
    async with create_drive(
        file=create_file_service,
        snapshot=create_snapshot_service,
    ) 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 the snapshot up-to-date.
        async for change in drive.sync():
            print(change)

        # Get the root node.
        root_node = await drive.get_root()

        # 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 directory.
        new_directory = await drive.create_directory('directory_name', root_node)

        # Download a file.
        await download_file_to_local(drive, node, '/tmp')

        # Upload a file.
        new_file = await upload_from_local(drive, root_node, '/path/to/local/file')

        # Traverse drive.
        async for root, directorys, files in drive.walk(root_node):
            print(root, directorys, files)

Project details


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-4.2.0.tar.gz (10.2 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

wcpan_drive_core-4.2.0-py3-none-any.whl (12.3 kB view details)

Uploaded Python 3

File details

Details for the file wcpan_drive_core-4.2.0.tar.gz.

File metadata

  • Download URL: wcpan_drive_core-4.2.0.tar.gz
  • Upload date:
  • Size: 10.2 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: poetry/2.1.4 CPython/3.13.5 Linux/5.15.167.4-microsoft-standard-WSL2

File hashes

Hashes for wcpan_drive_core-4.2.0.tar.gz
Algorithm Hash digest
SHA256 44ef7db7d84f921ca4a52fe30cc17f97edf95ebc0bde1e21adca5c21b3f223bf
MD5 11a7c6fb01e0072fe10a0af8ba3aa4dd
BLAKE2b-256 e96082c55ca215d9ff5fb1d32803e46b9090f0149403c6d5704014e9ad81a89c

See more details on using hashes here.

File details

Details for the file wcpan_drive_core-4.2.0-py3-none-any.whl.

File metadata

  • Download URL: wcpan_drive_core-4.2.0-py3-none-any.whl
  • Upload date:
  • Size: 12.3 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: poetry/2.1.4 CPython/3.13.5 Linux/5.15.167.4-microsoft-standard-WSL2

File hashes

Hashes for wcpan_drive_core-4.2.0-py3-none-any.whl
Algorithm Hash digest
SHA256 7f56c5b5f12707a27bb8de838b8230a8b71c8fb2d4a63d9d33e2776609624fc0
MD5 7d485d7fb2b0990deeda76bda3613575
BLAKE2b-256 5eb1f0a9b02c02d0fa7ee78a3ff1b2ef61d891e0a7aa9e5bd036796e7ae79acc

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page