Skip to main content

client for the kabuto service

Project description

Example usage

import time
from kabutopy.client import Client

# make a client instance with the base url of the kabuto service
client = Client("http://localhost:5000")

# registering a user
client.register("user", "password", "email@email.com")

# loging in with a user, the client keeps track of the cookies
client.login("user", "password")

# creating an image
# name: string
# dockerfile: raw string / open file / path to a file
# repo_url: string
# nocache: boolean
image = client.create_image("my_image", dockerfile="some file", repo_url=None, nocache=False)

# requesting the image status and image id will poll the server
# if the id is still empty, or is the status is PENDING
# it will update id, state and output if the state is SUCCESS
# it will update state, error and output if the state is FAIL

while image.status == 'PENDING':
    sleep(1)

# creating a pipeline
# name: string
pipeline = client.create_pipeline("my_pipeline")

# creating a job
# command: string
# image: Image / int / string that is castable to int
# attachment: open file / path to a file (a list of these things also works when multiple files need to be uploaded)
# pipeline: Pipeline / int / string that is castable to int
job = client.create_job(command, image, attachments, pipeline)

# getting logs
# job: Job / int / string that is castable to int
# job_id: int / string that is castable to int
# you are able to get the logs trough the client
logs = client.get_job_logs(job)

# trough the job itself
# job_id: int / string that is castable to int
logs = job.get_logs()

# getting results
# job: Job / int / string that is castable to int
# trough the client
# will return None if the job has not yet started, is still running or has failed
result = client.get_job_results(job)

# trough the job itself
result = job.get_results()

Classes and Methods

Client:

  • register(user, password, email)

  • login(user, password)

  • create_image(name, dockerfile=None, repo_url=None, nocache=False) returns Image

  • create_pipeline(name) returns Pipeline

  • create_job(command, image, attachments, pipeline) returns Job

  • submit_pipeline(pipeline)

  • get_job_logs(job, log_id=None) returns Log

  • get_job_results(job, pipeline=None) returns None or ByteIO

  • load_image(self, eid) returns loaded Image

  • load_pipeline(self, eid) returns loaded Pipeline

  • load_job(self, eid, pipeline) returns loaded Job

Image:

  • classmethod:load(eid) returns loaded image

Pipeline:

  • submit()

  • classmethod:load(eid) returns loaded pipeline

Job:

  • get_logs(log_id=None) returns Log

  • get_results() returns None or ByteIO

  • classmethod:load(eid, pipeline) returns loaded job

Log:

  • readlines(raw=True) returns lines or (line_id, line) if raw is False

  • refresh()

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

kabutopy-1.0.0.tar.gz (6.4 kB view details)

Uploaded Source

File details

Details for the file kabutopy-1.0.0.tar.gz.

File metadata

  • Download URL: kabutopy-1.0.0.tar.gz
  • Upload date:
  • Size: 6.4 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No

File hashes

Hashes for kabutopy-1.0.0.tar.gz
Algorithm Hash digest
SHA256 519695f030bc57bfe5f4a6f0d7768dfb41ac81f0027d43d14264fef4854e11a4
MD5 745c35f0ec253d7d7477715f4dc6c799
BLAKE2b-256 e58f9f8a55077cea0af18c3f2939616d35c17e460cc10a450d3f8ccdb1f7ac63

See more details on using hashes here.

Supported by

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