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 details)

Uploaded Source

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

Hashes for nextplus-0.1.2.tar.gz
Algorithm Hash digest
SHA256 fe08394a11e3ac1619dc90ffbe09ff6dea0e584a864991e5d9d1867d520aacf9
MD5 591ffc5c523e937560eabd7c52ef4fa4
BLAKE2b-256 6491d426aa649cb9c82bcce68345b698733aea4fe88c6e23eea94a39371770ae

See more details on using hashes here.

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