Skip to main content

The official python SDK for Linode API v4

Project description

linode_api4
===========

.. highlight:: python

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

**This library is currently in beta.**

.. _Linode API v4: https://developers.linode.com/v4/introduction

.. image:: https://travis-ci.org/linode/linode-api-python.svg?branch=master
:target: https://travis-ci.org/linode/linode-api-python

.. image:: https://badge.fury.io/py/linode-api.svg
:target: https://badge.fury.io/py/linode-api

Installation
------------
::

pip install linode_api4

Building from Source
--------------------

To build and install this package:

- Clone this repository
- ``./setup.py install``

Usage
-----

Check out the `Getting Started guide`_ to start using this library, or read
`the docs`_ for extensive documentation.

.. _Getting Started guide: http://linode_api4.readthedocs.io/en/latest/guides/getting_started.html
.. _the docs: http://linode_api4.readthedocs.io/en/latest/index.html

Examples
--------

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

.. _Install on a Linode: https://github.com/linode/linode_api4/tree/master/examples/install-on-linode

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_:

.. code-block:: shell

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 - include the URL whose response should be
used returned from the fixtures. For example::

with self.mock_post('/linode/instances/123'):
linode = self.client.linode.instance_create('g6-standard-2', 'us-east')
self.assertEqual(linode.id, 123) # passes

.. _tox: http://tox.readthedocs.io

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.

.. _Sphinx: http://www.sphinx-doc.org/en/master/index.html
.. _open an issue: https://github.com/linode/linode_api4/issues/new


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-1.0.0.tar.gz (43.2 kB view hashes)

Uploaded Source

Built Distribution

linode_api4-1.0.0-py2.py3-none-any.whl (180.2 kB view hashes)

Uploaded Python 2 Python 3

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