Skip to main content

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 and setup.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


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

nextplus-0.1.2.tar.gz (6.2 kB view hashes)

Uploaded Source

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