A Python SDK for interacting with the Next Plus MES system
Project description
Nextplus Python SDK
Introduction
The Nextplus Python SDK is a powerful and user-friendly package that allows developers to interact with the Nextplus API. With this SDK, developers can easily perform CRUD operations on tables and records within the Nextplus system.
Features
- User authentication with Nextplus API
- Retrieve, create, update, and delete records in tables
- Customizable queries with filtering options
Requirements
- Python 3.x
- requests library
Installation
To install the Nextplus Python SDK, you can use the following command:
pip install nextplus
Usage
Setting Up the Client
First, you need to set up the NextplusClient with your Nextplus server URL, username or email, and password. These can either be passed directly or set as environment variables.
from nextplus import NextplusClient
# Note that you can use email or username
client = NextplusClient(
server_url='https://your.nextplus.server.url',
email='your@email.com',
password='yourpassword'
)
Working with Tables
You can perform operations on tables such as finding a specific table or fetching a list of all tables.
Find Tables
tables = client.Tables.find({'where': {'name': 'YourTableName'}})
print(json.dumps(tables))
Response:
[
{
"id": "1958dbd0-b9bf-11ee-a4d7-950198b3451e",
"name": "Machine Status Log",
"columns": [
{
"id": "_id",
"name": "id",
"type": "string"
},
{
"id": "deletedAt",
"name": "deletedAt",
"type": "date"
},
{
"id": "createdAt",
"name": "createdAt",
"type": "date"
},
{
"id": "modified",
"name": "modified",
"type": "date"
},
{
"id": "workflowSessionItemId",
"name": "workflowSessionItemId",
"type": "string"
},
{
"id": "formId",
"name": "formId",
"type": "string"
},
{
"name": "Machine ID",
"type": "string",
"required": true,
"id": "COLUMN_machine-id"
},
{
"name": "Status",
"type": "string",
"id": "COLUMN_status"
},
{
"name": "Change Time",
"type": "date",
"id": "COLUMN_change-time",
"deletedAt": "2024-01-23T08:06:42.426Z"
}
],
"created": "2024-01-23T07:14:51.021Z",
"modified": "2024-01-23T08:06:44.500Z",
"serverModified": "2024-01-23T08:06:44.500Z",
"deletedAt": null,
"deletedBy": null
}
]
Note that you can only write to columns that prefixed with COLUMN_
.
Other columns are auto-generated and read only.
Working with Records in a Table
You can create, update, find, and delete records in a specific table.
Insert a Record
table = client.Table('your_table_id')
record = {
"COLUMN_machine-id": "Machine1",
"COLUMN_status": "idle"
}
result = table.insert(record)
print(f"Record inserted with ID: {result['_id']}")
Response:
{
"COLUMN_machine-id": "Machine1",
"COLUMN_status": "idle",
"_id": "7b74899f-f863-473a-9a96-d37a75e1c7fe",
"createdAt": "2024-01-23T11:33:37.205Z",
"modified": "2024-01-23T11:33:37.205Z",
"serverModified": "2024-01-23T11:33:37.205Z",
"deletedAt": null
}
Update a Record
updated_record = {
"_id": "record_id",
"COLUMN_status": "busy"
}
update_result = table.update(updated_record)
print(update_result)
Response:
{
"_id": "7b74899f-f863-473a-9a96-d37a75e1c7fe",
"COLUMN_machine-id": "Machine1",
"COLUMN_status": "busy",
"createdAt": "2024-01-23T11:33:37.205Z",
"modified": "2024-01-23T11:34:52.185Z",
"serverModified": "2024-01-23T11:34:52.185Z",
"deletedAt": null
}
Find Records
rows = table.find({'where': {'COLUMN_machine-id': 'Machine1'}})
print(rows)
Response:
{
"_id": "7b74899f-f863-473a-9a96-d37a75e1c7fe",
"COLUMN_machine-id": "Machine1",
"COLUMN_status": "busy",
"createdAt": "2024-01-23T11:33:37.205Z",
"modified": "2024-01-23T11:34:52.185Z",
"serverModified": "2024-01-23T11:34:52.185Z",
"deletedAt": null,
"id": "7b74899f-f863-473a-9a96-d37a75e1c7fe"
}
Delete a Record
table.remove("record_id")
Response:
{
"_id": "7b74899f-f863-473a-9a96-d37a75e1c7fe",
"COLUMN_machine-id": "Machine1",
"COLUMN_status": "busy",
"createdAt": "2024-01-23T11:33:37.205Z",
"modified": "2024-01-23T11:36:23.226Z",
"serverModified": "2024-01-23T11:36:23.226Z",
"deletedAt": "2024-01-23T11:36:23.226Z"
}
Development
Building a new version
- Update version code in
nextplus/client.py
andsetup.py
- Run build command
python setup.py sdist
Release new version
- Make sure twine is installed
pip install twine
- Then, upload your package
twine upload dist/*
When username & password prompt, enter__token__
as username and token as password
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
File details
Details for the file nextplus-0.1.2.tar.gz
.
File metadata
- Download URL: nextplus-0.1.2.tar.gz
- Upload date:
- Size: 6.2 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/4.0.2 CPython/3.10.6
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | fe08394a11e3ac1619dc90ffbe09ff6dea0e584a864991e5d9d1867d520aacf9 |
|
MD5 | 591ffc5c523e937560eabd7c52ef4fa4 |
|
BLAKE2b-256 | 6491d426aa649cb9c82bcce68345b698733aea4fe88c6e23eea94a39371770ae |