Functions to interact with the Seven2one TechStack
Project description
Usage
Local Installation
For local development, the package can be installed using Poetry (it will create a virtual environment automatically):
# Install Poetry if not already installed
pip install poetry
# Install dependencies and set up the package in development mode
poetry install
# (Optional) Activate the virtual environment via poetry and start a python shell
# to interactively test the package
poetry run python
Or with Virtualenv:
# Create and activate a virtual environment
python -m venv .venv
source .venv/bin/activate # On Windows use `.venv\Scripts\activate`
pip install -e .
Adding New Dependencies
To add a new dependency to the project:
poetry add <package-name>
To lock all dependencies to their current versions:
poetry lock
This ensures reproducible installations for everyone using the project.
Connect
Interactive with client id from your OAuth 2 provider:
from seven2one import TechStack
client = TechStack(host, client_id)
In unattended scripts via service account:
from seven2one import TechStack
client = TechStack(host, client_id, service_account_name='my-serviceuser', service_account_secret='some token')
Logging
By default the Python lib writes logs to console and to the server the user connects to.
Configure log levels and server endpoint by environment variables if needed:
| Variable | Description | Default |
|---|---|---|
| LOGLEVEL | Set the log level for console output | 'INFO' |
| LOGLEVEL_SERVER | Set the log level for logs sent to the server (Loki). Log levels are 'ERROR', 'WARNING', 'INFO' and 'DEBUG'. | 'ERROR' |
| LOG_TO_SERVER | Disable logging to Loki server | 'TRUE' |
| LOG_SERVER | Overwrite the log server endpoint if e.g. running inside the same cluster | 'https://{host}/logging/loki/api/v1/push' |
Basic read operations
client.inventories()
client.items('appartments', references=True)
client.inventoryProperties('appartments')
client.propertyList('appartments', references=True, dataTypes=True)
Write operations
Create inventory
properties = [
{
'dataType': 'DATE_TIME_OFFSET',
'name': 'fieldDATETIMEOFFSET',
'nullable': True
},
{
'dataType': 'BOOLEAN',
'name': 'fieldBOOLEAN',
'nullable': True
}
]
client.createInventory('testInventory', properties)
Add (basic) items
items = [
{
"fieldSTRING": "bla",
"fieldDECIMAL": 0,
"fieldLONG": 0,
"fieldINT": 0,
"fieldBOOLEAN": True,
"fieldDATETIME": "2021-09-14T00:00:00.000Z",
"fieldDATETIMEOFFSET": "2021-09-14T00:00:00.000Z"
}
]
addBasicItems('testInventory', items)
Advanced
To change one or more used service endpoints (e.g. for tests against custom deployments) you can overwrite them by environment variables. You have to provide complete URL's.
| Environment variable | Description | Example |
|---|---|---|
| IDENDITYPROVIDER_URL | Identity provider base url | https://authentik.mytechstack |
| DYNAMIC_OBJECTS_ENDPOINT | DynO graphQL endpoint | https://run.integrationtest.s2o.dev/itest-375545a3-dynamic-objects/graphql/ |
| AUTOMATION_ENDPOINT | Automation service graphQL endpoint | |
| SCHEDULE_ENDPOINT | Schedule service graphQL endpoint | |
| PROGRAMMING_ENDPOINT | Programming service graphQL endpoint | |
| TIMESERIES_ENDPOINT | TimeSeries gateway graphQL endpoint | |
| LOGGING_ENDPOINT | Logging reverse proxy endpoint | http://mytechstack:8123/loki/api/v1/push |
| AUTHORIZATION_ENDPOINT | Authorization service graphQL endpoint |
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
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file seven2one-9.3.1.tar.gz.
File metadata
- Download URL: seven2one-9.3.1.tar.gz
- Upload date:
- Size: 94.5 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: poetry/2.2.0 CPython/3.10.12 Linux/5.15.0-161-generic
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
0238f48e889f13c595032e03fb62ae8cb4cbfc6c71c52dd27f184066adb454b9
|
|
| MD5 |
736818b68886b82493deb1b25a5c555b
|
|
| BLAKE2b-256 |
01c147105aa20a3a5c9a3f3e19c1f5d98fb004f7b40de85f6fa7c659c53e520d
|
File details
Details for the file seven2one-9.3.1-py3-none-any.whl.
File metadata
- Download URL: seven2one-9.3.1-py3-none-any.whl
- Upload date:
- Size: 109.9 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: poetry/2.2.0 CPython/3.10.12 Linux/5.15.0-161-generic
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
d581e77b4d2f8af1d061473b14d3144f2b3a963482a77b37bcff6562c714ba71
|
|
| MD5 |
5c30065bc3503c9bbcd33f20c35a4fda
|
|
| BLAKE2b-256 |
b86ff0acafe75c5c02cb535ac22b58276de10633a2ecd731646a8a284bf5d155
|