SDK for working with the Vantiq system
Project description
Vantiq SDK for Python
The Vantiq Python SDK is a Python package that provides an API into a Vantiq system from Python applications. The SDK connects to a Vantiq system using the Vantiq REST API.
Installation
The SDK is installed from the PyPI repo. To install this into your system, use
pip install vantiqsdk
Note: depending on your local environment, you may need to use pip3
instead of pip
, or whatever is appropriate to install into your
virtual environment.
The Vantiq SDK for Python requires Python version 3.10 or better.
It is built using asyncio
, aiohttp
, and websockets
. In the documentation
that follows, methods marked as Async must be awaited. For more information
about asyncio
and await
, please see the
Python asyncio
documentation).
Quick Start
You will need valid credentials on a Vantiq server in the form of a username and password or access token. If you have a private Vantiq server, contact your administrator for credentials. If you wish to use the Vantiq public cloud, contact support@vantiq.com.
The first step is to create an instance of the Vantiq SDK providing the URL of the Vantiq server to connect:
from vantiqsdk import Vantiq, VantiqResources, VantiqResponse
import vantiqsdk
server: str = "https://dev.vantiq.com"
vantiq: Vantiq = Vantiq(server)
where server
is the full URL for the Vantiq server to connect to, such as https://dev.vantiq.com/.
An optional second argument is the version of the API to connect to.
If not specified, this defaults to the latest version, currently 1.
At this point, the Vantiq instance has not yet connected to the server.
To establish a connection to the server, use the authenticate
method, e.g.,
username = "joe@user"
password = "my-secr3t-passw0rd!#!"
await vantiq.authenticate(username, password)
The username
and password
are the same credentials used to log into the system.
Note the username and password are not stored either in-memory or persistently after
this authentication call. After successfully authenticating with the system,
the Vantiq instance stores an in-memory access token that subsequent API calls
will use.
Now, you are able to perform any SDK calls to the Vantiq server. The async methods
on the SDK classes can be immediately awaited to run in, effectively, a synchronous
fashion, or they can return an Awaitable
that can be awaited later.
vr: VantiqResponse = await vantiq.select(VantiqResources.TYPES)
Alternatively,
to_await = vantiq.select(VantiqResources.TYPES)
...
vr: VantiqResponse = await to_await
In either case, the response to the operation is available in the VantiqResponse instance.
Documentation
For the full documentation on the SDK, see the SDK API Reference.
Developers
The project is set up as a gradle
project. To run the tests, use
./gradlew test
or
./gradlew.bat test
in a windows environment.
The tests run will run a mocked version. To execute tests against a live server, define the following gradle properties in your ~/.gradle/gradle.properties file:
# Python project values
TestVantiqServer=<Vantiq server url> # Only do the base URL. Ex http://localhost:8080/
TestAccessToken=<access token from that Vantiq system>
TestVantiqUsername=<Vantiq user name>
TestVantiqPassword=<Password for that Vantiq user>
Alternatively, when running directly, use the following environment variables:
VANTIQ_URL <Vantiq erver url>
VANTIQ_ACCESS_TOKEN <Access token from that Vantiq system>
VANTIQ_USERNAME <Vantiq user name>
VANTIQ_PASSWORD <Password for that Vantiq user>
Copyright and License
Copyright © 2022 Vantiq, Inc. Code released under the MIT license.
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 Distribution
Hashes for vantiqsdk-1.4.0-py3-none-any.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | ba0a6e87b1d70f8a46d4ff7a515f20d1877b4e307d52451054bb3b71c74ba466 |
|
MD5 | 7e1d4b9eef90c80ac3a7b395c53c0ba1 |
|
BLAKE2b-256 | 058b10f0020ce2f10e4c094c9e70bff742d720f8a90321472e03e39896022b99 |