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=...). Omitapi_keyto useOLEANDER_API_KEY. Setbase_urlto 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
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 oleanderhq_sdk-0.1.0.tar.gz.
File metadata
- Download URL: oleanderhq_sdk-0.1.0.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
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
6e7788cea0b656df7cd6f9fcabd9f13e00a5e3b192e32588898f89f2c08c05b3
|
|
| MD5 |
ecb26e4dff93a47af5c32f9c25929b9c
|
|
| BLAKE2b-256 |
09ad0094364c330b9149123841976ab22ca072eb726e8dd747612001c5a88921
|
File details
Details for the file oleanderhq_sdk-0.1.0-py3-none-any.whl.
File metadata
- Download URL: oleanderhq_sdk-0.1.0-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
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
edb4a456c90d89eaa591881f7ff322344f025e7bd13daa8b448582e037a35a1b
|
|
| MD5 |
ef153b4ce61ebdb8c7d9487e3054fd1d
|
|
| BLAKE2b-256 |
07e94f5f24d68f521d3eeb7d886e9022069659d8cbf3a1e41bedddfbf1f6a0cb
|