Python SDK to query Scaleway APIs.
Project description
Python SDK to query Scaleway’s APIs.
Installation
The package is available on pip. To install it in a virtualenv:
$ virtualenv my_virtualenv
$ source my_virtualenv/bin/activate
$ pip install scaleway-sdk
General principle
If you’re looking to send a GET HTTP request against our APIs, like:
GET <api_url>/foo/bar
you only need to call the following pythonic code:
>>> from scaleway.apis import DummyAPI
>>> DummyAPI().query().foo.bar.get()
The magic here lies in scaleway.apis.*API instances, which all have a query method returning a slumber.API object. The latter handling all the excruciating details of the requests.
Documentation
Even if this SDK is designed to be developer-friendly and aim for self-service discovery, it is still recommended to read the official API documentation.
And because most of the provided helpers takes the form of pre-configured Slumber objects, a good read of Slumber documention is encouraged as well.
The list of available resources per API can be found [on the Scaleway API repository](https://github.com/scaleway/api.scaleway.com/blob/master/README.md#apis)
Examples
List your organizations:
>>> from scaleway.apis import AccountAPI
>>> api = AccountAPI(auth_token='') # Set your token here!
>>> print api.query().organizations.get()
{u'organizations': [...]}
List your organizations, but get a flask.Response object instead of a dict:
>>> from scaleway.apis import AccountAPI
>>> api = AccountAPI(auth_token='') # Set your token here!
>>> resp = api.query(serialize=False).organizations.get()
>>> print type(resp)
<Response [200]>
>>> print resp.headers
{...} # Response HTTP headers.
>>> print resp.links
{...} # Parsed "Link" HTTP header, for pagination.
>>> print resp.json()
{u'organizations': [...]}
List your servers:
>>> from scaleway.apis import ComputeAPI
>>> api = ComputeAPI(auth_token='') # Set your token here!
>>> print api.query().servers.get()
{u'servers': [...]}
# Or choose your region, as in apis/api_compute.py
>>> api = ComputeAPI(region='ams1', auth_token='') # Set your token here!
>>> print api.query().servers.get()
{u'servers': [...]}
Get details of a server:
>>> from scaleway.apis import ComputeAPI
>>> api = ComputeAPI(auth_token='') # Set your token here!
>>> server_id = '' # Set a server ID here!
>>> print api.query().servers(server_id).get()
{u'server': {...}}
Check if your token has the permission servers:read for the service compute for the organization 9a096d36-6bf9-470f-91df-2398aa7361f7:
>>> from scaleway.apis import AccountAPI
>>> api = AccountAPI(auth_token='') # Set your token here!
>>> print api.has_perm(service='compute', name='servers:read',
... resource='9a096d36-6bf9-470f-91df-2398aa7361f7')
False
Development
Assuming you are in a virtualenv:
$ pip install -e .
$ python -c 'from scaleway.apis import AccountAPI'
# it works!
Test
To submit a patch, you’ll need to test your code against python2.7 and python3.4. To run tests:
$ pip install nose coverage pycodestyle pylint
$ python setup.py nosetests --with-coverage
(...)
$ pycodestyle scaleway
(...)
$ pylint scaleway
(...)
Coverage score should never be lower than before your patch.
PEP8 should never return an error.
Pylint score should never be lower than before your patch.
Alternatively, to run nosetests on both Python2.7 and Python3.4, you can run tox.
Alternative libraries / clients
We maintain a list of the current library/client implementations on the api.scaleway.com repository.
License
This software is licensed under a BSD 2-Clause License.
Changes for v1.10.0 (2019-10-15)
Move __init__.py into apis subpackage
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
Built Distributions
File details
Details for the file scaleway-sdk-1.10.0.tar.gz
.
File metadata
- Download URL: scaleway-sdk-1.10.0.tar.gz
- Upload date:
- Size: 17.9 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/1.13.0 pkginfo/1.5.0.1 requests/2.21.0 setuptools/41.0.1 requests-toolbelt/0.9.1 tqdm/4.32.2 CPython/2.7.16
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | e21513cbb45d8e504e35eceff645dd54ad35413d073105f0ebeb906463dc62b7 |
|
MD5 | 65abe4273bd8dc08b9c1cb02960fb240 |
|
BLAKE2b-256 | a87785d887bda34d4bd791afd7fb36e347f5e1eb2e6f4f4cb2cee3cde260452c |
File details
Details for the file scaleway_sdk-1.10.0-py2.py3-none-any.whl
.
File metadata
- Download URL: scaleway_sdk-1.10.0-py2.py3-none-any.whl
- Upload date:
- Size: 18.5 kB
- Tags: Python 2, Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/1.13.0 pkginfo/1.5.0.1 requests/2.21.0 setuptools/41.0.1 requests-toolbelt/0.9.1 tqdm/4.32.2 CPython/2.7.16
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | fd59d9f7defa1a19bd606887e141ab2ab820305c467b21930c7a09c13e1be725 |
|
MD5 | 28339114501ff65581816bf0bca55fe7 |
|
BLAKE2b-256 | 7132cdcf8339b7e7dbbcea1ec8277345a29be4581a0624660e454e9df79bff90 |
File details
Details for the file scaleway_sdk-1.10.0-py2.7.egg
.
File metadata
- Download URL: scaleway_sdk-1.10.0-py2.7.egg
- Upload date:
- Size: 33.5 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/1.13.0 pkginfo/1.5.0.1 requests/2.21.0 setuptools/41.0.1 requests-toolbelt/0.9.1 tqdm/4.32.2 CPython/2.7.16
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | 0410c3ed2a31c119b4565f483e8412ac3a295b880679e093aa56aa71d984e536 |
|
MD5 | f749813bed654d6742f336e348ebacb7 |
|
BLAKE2b-256 | f939cbe65374849efbe3458434cc2c075a0ca3938e960738f0d23f2747e6878a |