Skip to main content

Python SDK for oleander: query lake, list and launch Spark jobs

Project description

oleander Python SDK

Use the oleander API from Python: run lake queries, list Spark jobs, and launch Spark jobs.

Install

pip install oleanderhq-sdk

Get your API key

Create an API key in oleander settings, or run oleander configure if you use the CLI. You can pass the key when creating the client or set the OLEANDER_API_KEY environment variable.

Quick start

import asyncio
from oleander_sdk import Oleander

async def main():
    oleander = Oleander()
    result = await oleander.list_spark_jobs()
    print(result.scripts)

asyncio.run(main())

API

All methods are async. Use await when calling them.

Query (lake)

Run a SQL query against the oleander lake. The second parameter is optional; save defaults to False. Use save=True to persist results as a table.

from oleander_sdk import Oleander, QueryOptions

oleander = Oleander()
result = await oleander.query(
    "SELECT * FROM public.iris_dataset LIMIT 10",
)
print(result.results.columns, result.results.rows)
print(result.row_count, result.execution_time)
if result.saved_table_name:
    print("Saved to:", result.saved_table_name)

List Spark jobs

Paginated list of your Spark job scripts. Options: limit (default 20), offset (default 0).

from oleander_sdk import Oleander, ListSparkJobsOptions

oleander = Oleander()
result = await oleander.list_spark_jobs()
print(result.scripts, result.has_more)

next_page = await oleander.list_spark_jobs(ListSparkJobsOptions(offset=20))

Launch Spark job

Submit a Spark job. Required: namespace, name, script_name. Other options (e.g. args, machine types, tags) have defaults.

from oleander_sdk import Oleander, SparkJobSubmitOptions

oleander = Oleander()
result = await oleander.submit_spark_job(SparkJobSubmitOptions(
    namespace="my-namespace",
    name="my-job-name",
    script_name="my_script.py",
))
print("Run ID:", result.run_id)

Wait for a run to finish

Submit and poll until the run completes. Optional: poll_interval_ms (default 10000), timeout_ms (default 600000).

from oleander_sdk import Oleander, SubmitSparkJobAndWaitOptions

oleander = Oleander()
result = await oleander.submit_spark_job_and_wait(SubmitSparkJobAndWaitOptions(
    namespace="my-namespace",
    name="my-job-name",
    script_name="my_script.py",
))
print(result.run_id, result.state)  # COMPLETE | FAIL | ABORT

Get run status

run = await oleander.get_run(run_id)
print(run.state, run.duration)

Options

  • Constructor: Oleander(api_key=..., base_url=...). Omit api_key to use OLEANDER_API_KEY. Set base_url to use a different endpoint (e.g. http://localhost:3000).
  • Models: The package exports Pydantic models (e.g. OleanderOptions, SparkJobSubmitOptions) if you want to validate config or options yourself.

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

oleanderhq_sdk-0.1.1.tar.gz (6.0 kB view details)

Uploaded Source

Built Distribution

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

oleanderhq_sdk-0.1.1-py3-none-any.whl (6.6 kB view details)

Uploaded Python 3

File details

Details for the file oleanderhq_sdk-0.1.1.tar.gz.

File metadata

  • Download URL: oleanderhq_sdk-0.1.1.tar.gz
  • Upload date:
  • Size: 6.0 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.12.12

File hashes

Hashes for oleanderhq_sdk-0.1.1.tar.gz
Algorithm Hash digest
SHA256 c0d2cebbc6c61624aa566b364daeb8ef8a43ba3ab81a47cbc0ef5cb551a5ebd1
MD5 6b384e3488e8a704c5ce76910bf94d1b
BLAKE2b-256 11087da06ed5b766d831b0b4b51f13819e07bf9294e63039038b6bc25a0f2324

See more details on using hashes here.

File details

Details for the file oleanderhq_sdk-0.1.1-py3-none-any.whl.

File metadata

  • Download URL: oleanderhq_sdk-0.1.1-py3-none-any.whl
  • Upload date:
  • Size: 6.6 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.12.12

File hashes

Hashes for oleanderhq_sdk-0.1.1-py3-none-any.whl
Algorithm Hash digest
SHA256 d49ee3ad3bdac2281588161179c57de2a765b67be605fb3129fa99ff20afcdf5
MD5 b74981b2348f4fbfbc88bd780a8d9205
BLAKE2b-256 c9e24588482f6056f4c4e0cd2e32db752a50591d009bda65dd68f13dc7ed35fb

See more details on using hashes here.

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