Python utilities for interacting with ShorthandAI data
Project description
shorthandai
This package provides a Python SDK for working with the ShorthandAI platform.
Installation
$ pip install shorthandai
Usage
from shorthandai import ShorthandAI
# Token can be passed by setting the environment variable `SHORTHANDAI_TOKEN`.
# token can be generated at https://apiv1.shorthand.ai/console/tokens
SH = ShorthandAI()
# Alternately, pass in the token explicitly
token = 'sh-...'
SH = ShorthandAI(token)
# Get values
print(SH.get("dev123"))
# Set values
print(SH.set("dev123", 4000))
import datetime
# Get historical
print(SH.geth("dev123", datetime.datetime(2022, 12, 31)))
For example, new users can try out the following:
from shorthandai import ShorthandAI
SH = ShorthandAI('demo')
print(SH.info())
print(SH.GET('dev123', '1659994710026'))
print(SH.GET('dev123', 'notexists'))
print(SH.GET('dev123'))
print(SH.GET('dev444'))
print("\nTesting GET-historical\n")
import datetime
print(SH.GETH('dev123', datetime.datetime(2022, 12, 31)))
print(SH.GETH('dev123', datetime.datetime(2022, 11, 1)))
print(SH.GETH('dev123', datetime.datetime(2023, 2, 24)))
print("\nTesting SET\n")
print(SH.SET('dev555-scalar', 1000))
print(SH.GET('dev555-scalar'))
new_df = pd.DataFrame({
'Name': ['Tom', 'nick', 'krish', 'jack'],
'Age': [20, 21, 19, 18]
})
print(new_df)
print(SH.SET('dev777-pd', new_df))
print(SH.GET('dev777-pd'))
geth_many_res = list(SH.GETMANY([
{ "topic_name": "dev123", "asOf": datetime.datetime(2024, 4, 18, 15, 0, 0) },
{ "topic_name": 'dev123', "asOf": datetime.datetime(2022, 12, 31) },
{ "topic_name": 'dev123', "asOf": datetime.datetime(2022, 11, 1) },
{ "topic_name": 'dev123', "asOf": datetime.datetime(2023, 2, 24) }
]))
print(geth_many_res)
# Loading large number of topics
import time
start_ts = time.time()
get_many_res = list(SH.GETMANY([
{
"topic_name": "dev123",
"tag": '1659994710026'
},
{
"topic_name": "dev444",
"tag": '1659994710026'
},
{
"topic_name": "dev444",
},
{
"topic_name": "dev444",
"tag": 'latest'
},
{
"topic_name": "dev777-pd",
},
{
"topic_name": "dev555-scalar",
"tag": 'latest'
}
] * 100))
end_ts = time.time()
elapsed = end_ts - start_ts
print([ str(type(d)) for d in get_many_res ])
print(f'getmany for {len(get_many_res)} topics in {elapsed}s')
# getmany for 600 topics in 7.065880060195923s
print("\nTesting SET_MANY\n")
new_df = pd.DataFrame({
'Name': ['Alice', 'Bob', 'Charlie'],
'Score': [95, 87, 92]
})
set_many_res = SH.set_many([
{
"topic_name": "dev101",
"value": 301
},
{
"topic_name": "dev102",
"tag": "easy",
"value": 101
},
{
"topic_name": "dev103-pd",
"value": new_df
}
])
print("Set many response:", set_many_res)
# Verify the values were set
get_many_res = list(SH.GETMANY([
{"topic_name": "dev101", "tag": "latest"},
{"topic_name": "dev102", "tag": "easy"},
{"topic_name": "dev103-pd"}
]))
print("Verification get:", get_many_res)
get_res = SH.GET("dev103-pd")
print("Verification get dev103-pd:", get_res)
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
shorthandai-0.0.11.tar.gz
(5.5 kB
view details)
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 shorthandai-0.0.11.tar.gz.
File metadata
- Download URL: shorthandai-0.0.11.tar.gz
- Upload date:
- Size: 5.5 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.0.1 CPython/3.9.6
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
e6cef51affac59cb192321e09c0fbe88b93695078dc13d33a624c3aea7b2125f
|
|
| MD5 |
2497668f3058c5ee0cc2376c91689b9c
|
|
| BLAKE2b-256 |
e294e8857f32dbaae2b433f83dfc68eaa982693d57fc151aeb5088680ccae893
|
File details
Details for the file shorthandai-0.0.11-py3-none-any.whl.
File metadata
- Download URL: shorthandai-0.0.11-py3-none-any.whl
- Upload date:
- Size: 5.8 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.0.1 CPython/3.9.6
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
758bb6e4abf894cfe6ee8f648c7882ce11c8fa4e3a71a049c34966fa3cf90788
|
|
| MD5 |
6e8f6669018c2aae73baee9f819937c0
|
|
| BLAKE2b-256 |
978df5fda8a0d760461e4e93a1ba5c76efeb1f3ae8cd0a9d0bb305a91c0fd02b
|