Package to simplify Micantis API usage
Project description
Micantis API Wrapper
A lightweight Python wrapper for interacting with the Micantis API plus some helpful utilities.
Built for ease of use, fast prototyping, and clean integration into data workflows.
🚀 Features
- Authenticate and connect to the Micantis API service
- Download and parse csvs and binary data into pandas DataFrames
- Filter, search, and retrieve metadata
- Utility functions to simplify common API tasks
⚠️ Important
This package is designed for authenticated Micantis customers only.
If you are not a Micantis customer, the API wrapper and utilities in this package will not work for you.
For more information on accessing the Micantis API, please contact us at info@micantis.io.
📦 Installation
pip install micantis
💻 Examples
Import functions
import pandas as pd
from micantis import MicantisAPI
Initialize API
# Option 1 - login with username and password
service_url = 'your service url'
username = 'your username'
password = 'your password'
api = MicantisAPI(service_url=service_url, username=username, password=password)
# Option 2 - login in with Microsoft Entra ID
SERVICE = 'your service url'
CLIENT_ID = 'your client id'
AUTHORITY = 'https://login.microsoftonline.com/organizations'
SCOPES = ['your scopes']
api = MicantisAPI(service_url=SERVICE, client_id=CLIENT_ID, authority=AUTHORITY, scopes=SCOPES)
Authenticate API
api.authenticate()
Download Data Table Summary
Optional parameters
search: Search string (same syntax as the Micantis WebApp)barcode: Search for a specific barcodelimit: Number of results to return (default: 500)min_date: Only return results after this datemax_date: Only return results before this dateshow_ignored: Include soft-deleted files (default:True)
table = api.get_data_table(search=search, barcode=barcode, min_date=min_date, max_date=max_date, limit = 10, show_ignored=show_ignored)
table
Download Binary Files
# Download single file
file_id = 'File ID obtained from data table, id column'
df = api.download_binary_file(id)
# Download many files using list of files from the table
file_id_list = table['id'].to_list()
data = []
for id in file_id_list:
df = api.download_csv_file(id)
data.append(df)
all_data = pd.concat(data)
Download CSV Files
# Download single file
file_id = 'File ID obtained from data table, id column'
df = api.download_csv_file(id)
# Download multiple files
id_list = table['id'].to_list()
data = []
for id in id_list:
df = api.download_csv_file(id)
data.append(df)
all_data = pd.concat(data)
Cells Table
Download Cell ID Information
Retrieve a list of cell names and GUIDs from the Micantis database with flexible filtering options.
Optional parameters
search: Search string (same syntax as the Micantis WebApp)barcode: Search for a specific barcodelimit: Number of results to return (default: 500)min_date: Only return results after this datemax_date: Only return results before this dateshow_ignored: Include soft-deleted files (default:True)
search = "*NPD*"
cells_df = api.get_cells_list(search=search)
cells_df.head()
Download Cell Metadata
Fetch per-cell metadata and return a clean, wide-format DataFrame.
Parameters:
-
cell_ids: List[str]
List of cell test GUIDs (required) -
metadata: List[str] (optional)
List of metadata names (e.g.,"OCV (V)") or IDs.
If omitted, all non-image metadata will be returned by default. -
return_images: bool (optional)
IfTrue, includes image metadata fields. Default isFalse.
📘 Examples
# Example 1: Get all non-image metadata for a list of cells
cell_ids = cells_df["id"].to_list()
cell_metadata_df = api.get_cell_metadata(cell_ids=cell_ids)
# Example 2: Get specific metadata fields by name
cell_metadata_df = api.get_cell_metadata(
cell_ids=cell_ids,
metadata=["Cell width", "Cell height"],
return_images=False
)
# Merge cell metadata table with cell names to get clean dataframe
# Merge id with Cell Name (as last column)
id_to_name = dict(zip(cells_df['id'], cells_df['name']))
cells_metadata_df['cell_name'] = cells_metadata_df['id'].map(id_to_name)
cells_metadata_df.head()
Specifications Table
Download Specifications List
Retrieve specifications with their associated user properties.
# Get all specifications with their user properties
specs_df = api.get_specifications_table()
specs_df.head()
Test Management
Download Test Requests
Retrieve test request data with flexible date filtering.
Optional parameters
since: Date string in various formats (defaults to January 1, 2020 if not provided)- Full month names:
"May 1, 2025","January 15, 2024" - ISO format:
"2025-05-01"or"25-05-01"
- Full month names:
# Get all test requests (defaults to since 2020-01-01)
test_requests = api.get_test_requests()
# Get test requests since a specific date using month name
test_requests = api.get_test_requests(since="May 1, 2024")
# Get test requests using ISO format
test_requests = api.get_test_requests(since="2024-05-01")
Download Failed Test Requests
Retrieve only failed test requests with the same date filtering options.
# Get failed test requests since a specific date
failed_requests = api.get_failed_test_requests(since="January 1, 2024")
failed_requests.head()
Get Individual Test Request Details
Retrieve full details for a specific test request by ID.
# Get detailed information for a specific test request
request_id = "your-test-request-guid"
test_details = api.get_test_request(request_id)
Write Cell Metadata
Micantis lets you programmatically assign or update metadata for each cell using either:
- the human-readable field name (e.g., "Technician", "Weight (g)")
- or the internal propertyDefinitionId (UUID)
📘 Examples
# Example 1: Update the technician field to be Mykela for two cells
changes = [
{
"id": "276fefdb-74f2-4060-f705-08ddc4b13249", # cell test GUID
"field": "Technician",
"value": "Mykela"
},
{
"id": "276fefdb-74f2-4060-f705-08ddc4b13249",
"field": "Weight (g)",
"value": 98.7
}
]
api.write_cell_metadata(changes=changes)
# Test Example 1: Check if user values have been updated
api.get_cell_metadata(cell_ids = ["276fefdb-74f2-4060-f705-08ddc4b13249"], metadata = ['Weight (g)', 'Technician'])
# Example 2: Update the propertyDefinitionId value
changes = [
{
"id": "276fefdb-74f2-4060-f705-08ddc4b13249",
"propertyDefinitionId": "32a25a30-9032-4a09-6e0a-08dcc1524ff6",
"value": 98.7
}
]
api.write_cell_metadata(changes=changes)
# Test
api.get_cell_metadata(cell_ids = ["276fefdb-74f2-4060-f705-08ddc4b13249"], metadata = ['Weight (g)', 'Technician'])
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 micantis-0.1.7.tar.gz.
File metadata
- Download URL: micantis-0.1.7.tar.gz
- Upload date:
- Size: 13.7 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.1.0 CPython/3.9.20
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
9adfe52f126b8c38f43b318e571224ebb256c7f5b55f7046c748930b4059ce1f
|
|
| MD5 |
5f7594ace6ed0ecfabc5da432cb11691
|
|
| BLAKE2b-256 |
bc4896677e1a09068fa5103874173429494a8d1a6bc0096973947f6d493d714c
|
File details
Details for the file micantis-0.1.7-py3-none-any.whl.
File metadata
- Download URL: micantis-0.1.7-py3-none-any.whl
- Upload date:
- Size: 12.2 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.1.0 CPython/3.9.20
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
7581354264c945260c9b5bb80fccd4e5591adf01716c87b249f3858b17e4711e
|
|
| MD5 |
be915459b0f536deaabb3b9472e5ad64
|
|
| BLAKE2b-256 |
1f51e822476bf79146a6c62d8e8e3dc3f1e0cad82844a09769fe5c7ca29d913a
|