Python Client for QRonos
Project description
qronos-client
Python client for QRonos
Installation
This package can be installed via pip:
pip install qronos-client
Example Usage
Authentication
from qronos import QRonosClient
# Create client and login
qronos = QRonosClient(host='https://dev.qronos.xyz')
token, expiry = qronos.login(username='Quentin', password='Rogers')
# Alternatively, if you already have a token
qronos = QRonosClient(host='https://dev.qronos.xyz', token='ABCDEFGHIJKLMN')
# Logout
qronos.logout(all_tokens=True)
Tracker (Item) Data Import
# Import Tracker (Item) Data
job_id = qronos.tracker_import(
tracker_id=24,
unique_columns=["Part Number", "Weight"],
can_add_item=True,
can_delete_item=False,
data=[{"Part Number": "A1", "Weight": 5}, {"Part Number": "A2", "Weight": 8}],
)
Stage Data Import
# Import Stage Data
job_id = qronos.stage_import(
stage_id=2,
data=[{"Part Number": "A1", "leadtime": 5}, {"Part Number": "A2", "actual": "2020-10-26"}],
)
Stage Data Import by Tracker Stage
# Import Stage Data
job_id = qronos.stage_import(
tracker_stage_id=2,
data=[{"Part Number": "A1", "leadtime": 5}, {"Part Number": "A2", "actual": "2020-10-26"}],
)
Import Status
# Check Status of an Import
status = qronos.import_status(job_id=job_id)
Delete Items
# Delete Items
job_id = qronos.delete_items(
tracker_id=2,
data=["A", "B"],
)
Paginated services
The get_item_attributes
, get_item_stages
and get_item_stage_history
services return paginated responses in the form:
{
"next": "http://127.0.0.1:8000/api/attributes/?cursor=cD0x&page_size=1",
"previous": null,
"items": [{}, ...]
}
The next
and previous
fields contain the API url for the next/previous pages respectively.
If there are no next or previous pages the value would be null
.
All items can be returned as a single list of items by the get_all_item_data
method.
Following are some usage examples for the get_item_attributes
service. Pagination works the same way for all the services. I.e. you can use the same example by just changing the name of the service.
# Request the first page of data
data = qronos.get_item_attributes(
tracker=3,
page_size=2,
)
# Request the next page. This will use the same page_size as the previous request.
data = qronos.get_item_attributes(
tracker=3,
page=data.get("next")
)
# Request the next next page. Use page_size to change the size of the page.
data = qronos.get_item_attributes(
tracker=3,
page=data.get("next"),
page_size=10,
)
# Request the previous page
data = qronos.get_item_attributes(
tracker=3,
page=data.get("previous")
)
# Requesting all the pages using a while loop
all_data = []
data = qronos.get_item_attributes(tracker=3, page_size=10)
all_data.extend(data.get('items'))
while nextp := data.get('next'):
data = qronos.get_item_attributes(tracker=3, page=nextp)
all_data.extend(data.get('items'))
Get Item Attribute Data
- At minimum you must request a
tracker
or aunique_key
/unique_keys
- You cannot request both a
unique_key
andunique_keys
- Use
page_size
to change the size of the paginated result - Use
page
to navigate to next/previous page
# Get Item Attribute Data by tracker
item_data = qronos.get_item_attributes(
tracker=3,
show_non_mastered=False,
show_mastered=True,
)
# Get Item Attribute Data by unique keys
item_data = qronos.get_item_attributes(
unique_keys=["800000689", "800000726", "800000727"],
show_non_mastered=True,
show_mastered=True,
)
# Get Item Attribute Data by single unique key
item_data = qronos.get_item_attributes(
unique_key="800000689",
show_non_mastered=False,
show_mastered=True,
)
# Get Item Attribute Data by single unique key for only a single tracker
item_data = qronos.get_item_attributes(
unique_key="800000689",
tracker=4,
show_non_mastered=False,
show_mastered=True,
)
Get Item Stage Data
- At minimum you must request a
tracker
or aunique_key
/unique_keys
- You cannot request both a
unique_key
andunique_keys
- You cannot request both a
stage
andstages
- You cannot request both a
tracker_stage
andtracker_stages
- You cannot request a combinations of
stage
andtracker_stage
fields - Use
page_size
to change the size of the paginated result - Use
page
to navigate to next/previous page
# Get Item Stage Data for a tracker
stage_data = qronos.get_item_stages(tracker=3)
# Get Item Stage Data by unique keys
stage_data = qronos.get_item_stages(unique_keys=["800000689", "800000726", "800000727"])
# Get Item Stage Data by single unique key but only for a single stage
stage_data = qronos.get_item_stages(
unique_key="800000689",
stage=54,
)
# Get Item Stage Data by single unique key but only for a single tracker stage
stage_data = qronos.get_item_stages(
unique_key="800000689",
tracker_stage=12,
)
# Get Item Stage Data for a list of stages on a certain tracker
stage_data = qronos.get_item_stages(
tracker=4,
stages=[54, 55, 56],
)
# Get Item Stage Data for a list of tracker stages on a certain tracker
stage_data = qronos.get_item_stages(
tracker=4,
tracker_stages=[12, 13, 14],
)
Get Item Stage History Data
- Requests are the same as for Item Stage
Get All Data Methods
-
These methods will loop through each
page
and aggregate the data into a single list of items.- get_all_item_attributes
- get_all_item_stages
- get_all_item_stage_history
# Get all Item Attribute Data for a tracker
attributes_data = qronos.get_all_item_attributes(tracker=3)
# Get all Item Stage Data for a tracker
stage__data = qronos.get_all_item_stages(tracker=3)
# Get all Item Stage History Data for a tracker
attribute_data = qronos.get_all_item_stage_history(tracker=3)
Testing
Please speak with a QRonos Demo Site Admin for credentials in order to run the tests.
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
Hashes for qronos_client-1.6.0-py3-none-any.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | a2e668730fada6c7297e80d91a7211cb154105575031e45ce37c7e8d9c47bff3 |
|
MD5 | 8a4bef92f61ee9261cf8867495771bf4 |
|
BLAKE2b-256 | e40fb70914951638b47196f8f84e694696f917b5adc4e0876f9058a3c2faa38b |