Skip to main content

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:
        # 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 data file to here.
    # The default is $HOME/.local/share/wcpan/drive.
    # These files can 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


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-2.0.0.tar.gz (17.9 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-2.0.0-py3-none-any.whl (20.7 kB view details)

Uploaded Python 3

File details

Details for the file wcpan.drive.core-2.0.0.tar.gz.

File metadata

  • Download URL: wcpan.drive.core-2.0.0.tar.gz
  • Upload date:
  • Size: 17.9 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

Hashes for wcpan.drive.core-2.0.0.tar.gz
Algorithm Hash digest
SHA256 1803c3497d55a73acbde804ce9eeee37d9ce88b13d1c07a0d308f684f5875150
MD5 48bab94c74980c76109d88b298508a37
BLAKE2b-256 544458e509c79a8287752667a1823172ba32ef81a34180066d318d953c5b3553

See more details on using hashes here.

File details

Details for the file wcpan.drive.core-2.0.0-py3-none-any.whl.

File metadata

  • Download URL: wcpan.drive.core-2.0.0-py3-none-any.whl
  • Upload date:
  • Size: 20.7 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

Hashes for wcpan.drive.core-2.0.0-py3-none-any.whl
Algorithm Hash digest
SHA256 e35e9b4de60241fd4e8fb677f0cd775c0bb6230572e5892842ff870c469e8923
MD5 c7aa2b300ba3d0ae524169f5d343019f
BLAKE2b-256 5597bb4b1cfd6c60c455c5444a03a8043163364a9ea68b8355b344b21a4d9779

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