Skip to main content

The official python SDK for Linode API v4

Project description

linode_api4

The official python library for the Linode API v4 in python.

https://travis-ci.com/linode/linode_api4-python.svg?branch=master https://badge.fury.io/py/linode-api4.svg Documentation Status

Installation

pip install linode_api4

Building from Source

To build and install this package:

  • Clone this repository

  • ./setup.py install

Usage

Quick Start

In order to authenticate with the Linode API, you will first need to create a Linode Personal Access Token with your desired account permissions.

The following code sample can help you quickly get started using this package.

from linode_api4 import LinodeClient, Instance

# Create a Linode API client
client = LinodeClient("MY_PERSONAL_ACCESS_TOKEN")

# Create a new Linode
new_linode, root_pass = client.linode.instance_create(
    ltype="g6-nanode-1",
    region="us-southeast",
    image="linode/ubuntu22.04",
    label="my-ubuntu-linode"
)

# Print info about the Linode
print("Linode IP:", new_linode.ipv4[0])
print("Linode Root Password:", root_pass)

# List all Linodes on the account
my_linodes = client.linode.instances()

# Print the Label of every Linode on the account
print("All Instances:")
for instance in my_linodes:
    print(instance.label)

# List Linodes in the us-southeast region
specific_linodes = client.linode.instances(
    Instance.region == "us-southeast"
)

# Print the label of each Linode in us-southeast
print("Instances in us-southeast:")
for instance in specific_linodes:
    print(instance.label)

# Delete the new instance
new_linode.delete()

Check out the Getting Started guide for more details on getting started with this library, or read the docs for more extensive documentation.

Examples

See the Install on a Linode example project for a simple use case demonstrating many of the features of this library.

Contributing

Tests

Tests live in the tests directory. When invoking tests, make sure you are in the root directory of this project. To run the full suite across all supported python versions, use tox:

tox

Running tox also runs pylint and coverage reports.

The test suite uses fixtures stored as JSON in test/fixtures. These files contain sanitized JSON responses from the API - the file name is the URL called to produce the response, replacing any slashes with underscores.

Test classes should extend test.base.ClientBaseCase. This provides them with self.client, a LinodeClient object that is set up to work with tests. Importantly, any GET request made by this object will be mocked to retrieve data from the test fixtures. This includes lazy-loaded objects using this client (and by extension related models).

When testing against requests other than GET requests, self.mock_post (and equivalent methods for other HTTP verbs) can be used in a with block to mock out the intended request type. These functions accept the relative path from the api base url that should be returned, for example:

# this should return the result of GET /linode/instances/123
with self.mock_post('/linode/instances/123'):
  linode = self.client.linode.instance_create('g6-standard-2', 'us-east')
  self.assertEqual(linode.id, 123) # passes

Documentation

This library is documented with Sphinx. Docs live in the docs directory. The easiest way to build the docs is to run sphinx-autobuild in that folder.

Classes and functions inside the library should be annotated with sphinx-compliant docstrings which will be used to automatically generate documentation for the library. When contributing, be sure to update documentation or include new docstrings where applicable to keep the library’s documentation up to date and useful.

Missing or inaccurate documentation is a bug. If you notice that the documentation for this library is out of date or unclear, please open an issue to make us aware of the problem.

Contributing

Please follow the Contributing Guidelines when making a contribution.

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

linode_api4-testrelease-5.55.4.tar.gz (81.0 kB view details)

Uploaded Source

Built Distribution

linode_api4_testrelease-5.55.4-py3-none-any.whl (61.3 kB view details)

Uploaded Python 3

File details

Details for the file linode_api4-testrelease-5.55.4.tar.gz.

File metadata

File hashes

Hashes for linode_api4-testrelease-5.55.4.tar.gz
Algorithm Hash digest
SHA256 28d8d09fa1315847f3f3e71919129a4287238b99c2bb659c2f9e0ce65d1cb57b
MD5 6775275e4f35371c9d3f27021b519301
BLAKE2b-256 a97e032779255c51db6b91e944edd4801b859a910e0e32c0c2feda7e665bf423

See more details on using hashes here.

File details

Details for the file linode_api4_testrelease-5.55.4-py3-none-any.whl.

File metadata

File hashes

Hashes for linode_api4_testrelease-5.55.4-py3-none-any.whl
Algorithm Hash digest
SHA256 acd20188d9c27da62a1ad5d1485d3d2c4fff6ebed2635705196943e4e428e066
MD5 665f9aa04496d7ba778dfbb7ea485596
BLAKE2b-256 998a450a217e995b164e01846bf1efb3d875b0fad4e336e660a5f3bc2fef700a

See more details on using hashes here.

Supported by

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