Skip to main content

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

Project details


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.2.1a0.tar.gz (2.2 MB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

katapult_api-1.2.1a0-py3-none-any.whl (3.0 kB view details)

Uploaded Python 3

File details

Details for the file katapult_api-1.2.1a0.tar.gz.

File metadata

  • Download URL: katapult_api-1.2.1a0.tar.gz
  • Upload date:
  • Size: 2.2 MB
  • Tags: Source
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.12.9

File hashes

Hashes for katapult_api-1.2.1a0.tar.gz
Algorithm Hash digest
SHA256 20bc6787cd77d2fb3252cf8f8ac0452c9cac2cfefb5eb140d1fa4aae0b973816
MD5 aaa80a646ff1ade345615e0cf6bacaa7
BLAKE2b-256 e270d6d21f0d5b0f3737cfe2a50ee14bd0c4cc586f123e712f67a5b7f73677c7

See more details on using hashes here.

Provenance

The following attestation bundles were made for katapult_api-1.2.1a0.tar.gz:

Publisher: publish.yml on TechServ-Consulting-Training-Ltd/katapult-api

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file katapult_api-1.2.1a0-py3-none-any.whl.

File metadata

  • Download URL: katapult_api-1.2.1a0-py3-none-any.whl
  • Upload date:
  • Size: 3.0 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.12.9

File hashes

Hashes for katapult_api-1.2.1a0-py3-none-any.whl
Algorithm Hash digest
SHA256 0e78a5764e6934a26a6196cb7173f2aaaa511f42dbc71bc8573592db08914093
MD5 717262ee696a3afea6e3b52d6bcbd9c5
BLAKE2b-256 e54097d8288ef65c2918539484c01f3056ff51b762c4f1c9980d8a0a59cc6e49

See more details on using hashes here.

Provenance

The following attestation bundles were made for katapult_api-1.2.1a0-py3-none-any.whl:

Publisher: publish.yml on TechServ-Consulting-Training-Ltd/katapult-api

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page