skip to navigation
skip to content

kloudless 0.1.0

Python library for the Kloudless API

Latest Version: 1.1.2

Python library for the Kloudless API

Python library for the [Kloudless API](
This is in beta and under significant development.

## Installation

To install, clone the repository and run:

python install

## Documentation

See the [Kloudless API Docs]( for the official reference.
You can obtain an API Key at the [Developer Portal](

### Resources

Here are the resource classes available:

* `Account`
* `File`
* `Folder`
* `Link`
* `Key`

Each class has the following methods where applicable:

* `create(**data)` makes a POST request to create a resource of that type.
* `all(**params)` makes a GET request to list all resources
* `retrieve(id, **params)` makes a GET request to retrieve metadata for that resource.

In addition, instances have the methods below where applicable:

* `save(**params)` makes a PATCH request to update the resource after attributes on it
have been modified.
* `delete(**params)` makes a DELETE request to delete the resource.

Parameters mentioned above:

* `id`: The ID of the resource.
* `params`: Keyword arguments that will be converted into query parameters for the request.
* `data`: Keyword arguments that will be converted into a JSON string sent in the body of the request.

#### Accessing nested resources

The `Account` model has some helper attributes to make using class methods easier:

* `links` references the Link class
* `files` references the File class
* `folders` references the Folder class
* `keys` references the Key class

## Examples

### Basics

Here is an example retrieving metadata on a folder in an account:

>>> import kloudless; kloudless.configure(api_key="API_KEY")
>>> accounts = kloudless.Account.all()
>>> account = accounts[0]
>>> root_folder = account.folders()
>>> children = root_folder.contents()
>>> child_folder = [f for f in children if f.type == 'folder'][0]

The shortcut method `account.folders` is used above,
but you can also instantiate the classes above independently:

>>> root_folder = kloudless.Folder(id='root', parent_resource=account)

There are different ways to retrieve information on a resource, given it's ID.
Here are some examples, given `account_id` and `child_folder_id` as the account and
folder IDs respectively.

# We need to create the account object with an account ID first.
>>> account = kloudless.Account(id=account_id)

# Get the child folder via the "account.folders" helper method.
>>> account.folders.retrieve(id=child_folder_id)

# Retrieve the child folder a different way
>>> kloudless.Folder.retrieve(, parent_resource=account)

# Retrieve the child folder another way
>>> f = kloudless.Folder(, parent_resource=account)
>>> f.refresh() # Pulls latest metadata given the ID.

Another example retrieving key information a few different ways:

# A few different ways
>>> key = kloudless.Key.all(parent_resource=account)[0]
>>> key = account.keys.retrieve(
>>> key = kloudless.Key.retrieve(, parent_resource=account)
>>> key = kloudless.Key(; key.refresh();

### Moving a file

Here's an example moving a file from one account to a folder in a different account.

# Get two cloud storage accounts.
>>> accounts = kloudless.Account.all();
>>> accounts[0].id
>>> accounts[1].id

# Find a file in the first account.
>>> root_contents = accounts[0].folders().contents() # Get the root folder contents
>>> f = [f for f in root_contents if f.type == 'file'][0] # Get a file

# Find a folder in the second account.
>>> root_contents = accounts[1].folders().contents()
>>> folder = [folder for folder in root_contents if folder.type == 'folder'][0]

# Update the file with new information
>>> f.account = accounts[1].id # Moving it to a different account
>>> = 'new file name.txt'
>>> f.parent_id =
>>> # Makes the request to move the file.

# 'f' now represents the new file object.

## Apps using the Python SDK

* creates folders and uploads files via the Kloudless API.


* Tests!
* Flesh out documentation.
* Distribute via package server.
* Fix moving files/folders between folders.

## Acknowledgements

* [requests]( makes the API requests easy.
* [stripe-python]( was a useful resource while researching the interface for this API.  
File Type Py Version Uploaded on Size
kloudless-0.1.0.tar.gz (md5) Source 2014-04-28 8KB