QuarticSDK
Quartic SDK is Quartic.ai's external software development kit which allows users to use assets, tags, and other intelligence outside the Quartic AI Platform. Using the Quartic SDK, third party developers who have access to the Quartic AI Platform can build custom applications.
Installation
Install using pip
pip install quartic-sdk
to Install complete package with all supported model libraries:
pip install quartic-sdk[complete]
...or follow the following steps to install it from the source:
git clone https://github.com/Quarticai/QuarticSDK/
python setup.py install
Example
Comprehensive documentation is available at https://quarticsdk.readthedocs.io/en/latest/
Here's an example on how the Quartic SDK can be used:
Getting the assets, tags, batches from the server
# For getting raw data we need to use freeflowpaginated query using Graphql Client
# Below is the example for the same
# Assuming that the Quartic.ai server is hosted at `https://test.quartic.ai/`,
# with the login credentials as username and password is "testuser" and `testpassword respectively,
# then use GraphqlClient in the following format.
from quartic_sdk import GraphqlClient
client = GraphqlClient(url='https://test.quartic.ai/', username='testuser', password='testpassword')
# Executing Query by:
query='''
query MyQuery($offset_map: CustomDict, $startTime: String!, $stopTime: String!, $tags: [Int]!, $limit: Int)
{
freeflowPaginated (startTime: $startTime, stopTime: $stopTime, tags: $tags, limit: $limit, offsetMap: $offset_map )
}
'''
# The varaibles passsed are as follows:
# tags (required) : This is list of ids in int datatype
# startTime (required) : startTime in epoch but in string format
# stopTime (required) : stopTime in epoch but in string format
# limit (optional) : limit the datapoints of query. defaults to 1500
# offset_map (optional) : Dictionary where key is tag_id and value is the next offset returned by query executed.
variables={
"tags": [
21295
],
"startTime": "1706693453221",
"stopTime": "1706697053222",
"limit": 2,
"offset_map": {}
}
result = client.execute_query(query=query, variables=variables)
#You should see the following result:
{
"data": {
"freeflowPaginated": {
"data": {
"21295": {
"data": [
[
1706693453500,
808
],
[
1706693454000,
809
]
]
}
},
"offset_map":{"21295":4}
"status": 200
}
}
}
#using the offset in result you can create the next offset in following way and recall the execute query function
variables = {
"tags": [
21295
],
"startTime": "1706693453221",
"stopTime": "1706697053222",
"limit": 2,
"offset_map": offset_map
}
result = client.execute_query(query=query,variables=variables)
#You should see the following result:
{
"data": {
"freeflowPaginated": {
"data": {
"21295": {
"data": [
[
1706693454500,
810
],
[
1706693455000,
811
]
]
}
},
"offset_map":{"21295":6}
"status": 200
}
}
}
# Assuming that the Quartic.ai server is hosted at `https://test.quartic.ai/`,
# with the login credentials as username and password is "testuser" and `testpassword respectively,
# then use GraphqlClient in the following format.
from quartic_sdk import GraphqlClient
client = GraphqlClient(url='https://test.quartic.ai/', username='testuser', password='testpassword')
# Executing Query by:
query='''
query MyQuery {
Site {
id
name
}
}
'''
result = client.execute_query(query=query)
# To execute query asynchronously use the function below.
#You should see the following result:
{'data': {'Site': [{'id': '1', 'name': 'quartic'}, {'id': '8', 'name': 'ABC site 1'}, {'id': '12', 'name': 'XYZ 123'}]}
async def execute_graphql_query():
query='''
query MyQuery {
Site {
id
name
}
}
'''
resp = await client.execute_async_query(query=query)
return resp
# Note: The above function will return a coroutine object.
# Example to upload a file.
query = '''
mutation($file: Upload!, $edge_connector: Int!, $date_format: DateTime!) {
uploadTelemetryCsv(
file: $file,
fileName: "123",
edgeConnector: $edge_connector,
dateFormat: $date_format
)
{
taskId
status
}
}
'''
variables = {
'file': open('<path/to/file>', 'rb'),
'edge_connector': 'edgeConnector Id',
'date_format': 'DatTime format'
}
response = client.execute_query(query=query, variables=variables)
Documentation
To run the documentation locally, run the following commands in terminal:
cd docs
make html
cd docs/source
sphinx-build -b html . _build
open build/html/index.html
Test Cases
To run the behaviour test cases, run the command:
aloe
To run the unit test cases, run the command:
pytest
Metadata
Release files for quartic-sdk 3.5.0
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Actions Reset |
|---|---|---|---|---|
| quartic_sdk-3.5.0-py3-none-any.whl | Python 3 | none | any | Details for quartic_sdk-3.5.0-py3-none-any.whl |
Release files / quartic_sdk-3.5.0-py3-none-any.whl
| Download URL | quartic_sdk-3.5.0-py3-none-any.whl |
|---|---|
| Size | 100.8 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
4844bebb9cc77ee9582ac74f7d779431a7f89eec8ab112022083176e26a2d07c
|
|
BLAKE2b-256 checksum How to use checksums |
857df5e94162932399673da5d21671fb4205bf0c3b0433cd49d40b9365a64a3d
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/3.6.0 importlib_metadata/8.7.0 pkginfo/1.12.1.2 requests/2.32.4 requests-toolbelt/1.0.0 tqdm/4.67.1 CPython/3.9.5
|
Security for quartic-sdk 3.5.0
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
No provenance found
None of the files in this release were uploaded with provenance metadata.
A note on package security
PyPI is a repository for distributing packages, not a service for auditing them. While third-party security researchers and our staff do their best to detect and remove malicious packages, PyPI cannot guarantee the quality, security or suitability of any given package.
To learn more about protecting yourself from malicious actors, visit our package security documentation.