Async Python client for interacting with the KatapultPro API.
Project description
KatapultAPI
katapultAPI is a Python module designed to handle requests made to the Katapult API.
Installation & Setup
pip install katapult-api
Usage
Getting a Job list and Job Details
import logging.config
import asyncio
# Not required but the client itself has logging functionality to help track requests.
logger = logging.getLogger(__name__)
logging.basicConfig(
level=logging.DEBUG,
format='[%(levelname)s] %(asctime)s - %(name)s - %(message)s'
)
from katapult_api.katapult import Katapult
from katapult_api.utils import task_handler
async def main():
# Sets up the aiohttp session and closes it after finishing.
async with Katapult(api_key="YOURAPIKEY") as katapult:
# Returns a Response object that contains attributes such as return status, content, and even a json() method.
job_lists = await katapult.job_lists()
# Here we build 20 payloads that will be sent out at the same time.
job_ids = [{"job_id":key} for key in list(job_lists.json().keys())[:20]]
# Not required but makes setting up async tasks easy, pass in a job name and a list of dicts that contain
# expected params.
results = await task_handler(katapult.job,job_ids)
return results
if __name__ == '__main__':
logger.info(f"Getting jobs...")
jobs = asyncio.run(main())
logger.info(f"Finished, got {len(jobs)} jobs.")
Creating a Node
import asyncio
# ...possible logging
from katapult_api.katapult import Katapult
async def main():
async with Katapult(api_key="YOURAPIKEY") as katapult:
# get job id from job_lists endpoint...
job_id = "-ABC123"
# create a node by passing job id, lat/long, and a flat dict of attributes to write to the node
results = await katapult.create_node(job_id,30.0817,-97.843,{"OID":123,"my_custom_attr":"howdy partner"})
return results
if __name__ == '__main__':
results = asyncio.run(main())
KatapultNice Usage
import logging.config
import asyncio
logging.basicConfig(
level=logging.DEBUG,
format="%(asctime)s - %(name)s - %(levelname)s - %(message)s",
)
logger = logging.getLogger(__name__)
from katapult_api.katapult import Katapult
from katapult_api.katapult_nice import KatapultNice
from katapult_api.utils import task_handler
async def main(api_key: str):
async with KatapultNice(api_key=api_key) as nice:
job_lists = await nice.job_lists()
job_ids = [{"job_id": key} for key in list(job_lists.json().keys())[:20]]
results = await task_handler(nice.job_nodes, job_ids)
return results
if __name__ == '__main__':
api_key = "api_key"
logger.info(f"Getting jobs...")
jobs = asyncio.run(main(api_key))
logger.info(f"Finished, got {len(jobs)} jobs.")
Resources
- https://documenter.getpostman.com/view/9081167/SVtVV93W: Katapultpro API V1
- https://github.com/KatapultDevelopment/katapult-pro-api-documentation?tab=readme-ov-file: Katapultpro Github
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
katapult_api-1.0.1.tar.gz
(12.1 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 katapult_api-1.0.1.tar.gz.
File metadata
- Download URL: katapult_api-1.0.1.tar.gz
- Upload date:
- Size: 12.1 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.1.0 CPython/3.13.0
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
b60979aaa0f22ffebda09658f188f33f07d4857cc186c9446212917c8957272f
|
|
| MD5 |
fc0e1c6caad8ada35424eeadd8b8f95f
|
|
| BLAKE2b-256 |
0b447a57c7a852e14d0fc9b2c6764f843c818a8038e6dd65a3fefd855a62faf8
|
File details
Details for the file katapult_api-1.0.1-py3-none-any.whl.
File metadata
- Download URL: katapult_api-1.0.1-py3-none-any.whl
- Upload date:
- Size: 9.1 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.1.0 CPython/3.13.0
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
b18861c49329d051b72a7c85bcc2c19508584b30c1c1fd57e19d82774efd67bb
|
|
| MD5 |
15ea5c7df66baadd136c147aded1873a
|
|
| BLAKE2b-256 |
628594230562d2428309ea7322ab615f51d483012bd27cfdac5234e316eb59b0
|