Skip to content

doublecloud/python-sdk

Folders and files

NameName
Last commit message
Last commit date

Latest commit

ย 

History

94 Commits
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 

Repository files navigation

DoubleCloud SDK for Python

Wanna automate your DoubleCloud infrastructure with Python? Let's start.

Installation

Run the following in your terminal:

pip install doublecloud

Getting started

There are a couple of options for authorizing your requests:

  • Service Account Keys
  • Externally created IAM tokens.

Service Account Keys

# you can store and read it from a JSON file
sa_key = {
    "id": "...",
    "service_account_id": "...",
    "private_key": "..."
}

sdk = doublecloud.SDK(service_account_key=sa_key)

For more information on how to create a service account and authorized keys, see the DoubleCloud documentation.

IAM tokens

sdk = doublecloud.SDK(iam_token="t1.9eu...")

Check the examples directory for more examples.

For step-by-step instructions and examples of how to get an IAM token for your service account, see the DoubleCloud documentation.

How to contribute

Dependencies

  • Use make venv command to install the library, its production and development dependencies.
  • Use make submodule to fetch proto specifications.
  • Use make generate to generate wrappers for gRPC services.

Dependencies for the code generator tool are specified in buf.gen.yaml.

Formatting

Use make format to autoformat code with various set of tools.

Tests

  • make test to run tests for current python version
  • make lint to run only linters for current python version
  • make tox-current to run all checks (tests + code style checks + linters + format check) for current python version
  • make tox to run all checks for all supported (installed in your system) python versions

Maintaining

If a pull request consists of several meaningful commits that should be preserved, use the Rebase and merge option. Otherwise, use Squash and merge.

New release (changelog, tag and pypi upload) will be automatically created on each push to main via Github Actions workflow.