Python client for BugSeq (https://bugseq.com)
Project description
BugSeq Python Client Library
Authentication and client code for interacting with the BugSeq API.
Installation
pip install bugseq-client
Example Usage
from pathlib import Path
import requests
from bugseq_client.auth import (
DEFAULT_OAUTH_CONFIG,
Session,
get_default_credential_storage_provider,
)
import bugseq_client.openapi_client
def download_url_to_file(download_url: str, dst: Path):
with requests.get(download_url, stream=True) as r:
r.raise_for_status()
with open(dst, "wb") as f:
for chunk in r.iter_content(chunk_size=8192):
if chunk: # filter out keep-alive chunks
f.write(chunk)
class App:
def __init__(self):
storage = get_default_credential_storage_provider()
self.session = Session(DEFAULT_OAUTH_CONFIG, storage)
def run(self):
token = self.session.get_token()
configuration = bugseq_client.openapi_client.Configuration(
host="https://api.bugseq.com",
access_token=token,
)
with bugseq_client.openapi_client.ApiClient(configuration) as api_client:
api = bugseq_client.openapi_client.JobsApi(api_client)
print("fetching jobs")
jobs_resp = api.list_analyses_v1_jobs_get()
for job in jobs_resp.job_runs:
print(
f"id={job.id} name={job.user_provided_name} status={job.job_status}"
)
print()
job_id = jobs_resp.job_runs[0].id
print(f"fetching outputs for job {job_id}")
results_dir = Path(f"downloaded-results-{job_id}")
results_resp = api.get_analysis_results_v1_jobs_job_id_results_get(job_id)
for output in results_resp.outputs:
print(f" output filename={output.filename} size={output.size}")
download_resp = (
api.download_analysis_result_v1_jobs_job_id_results_download_get(
job_id, output.filename
)
)
download_dst = results_dir / output.filename
download_dst.parent.mkdir(exist_ok=True, parents=True)
download_url_to_file(download_resp.url, download_dst)
print(
f" downloaded filename={output.filename} dst={str(download_dst)}"
)
def main():
app = App()
app.run()
if __name__ == "__main__":
main()
Releasing to PyPI
docker run -it --rm \
-v "$(pwd)":/work \
-w /work \
python:3.13 \
bash
rm -rf dist/*
python3 -m pip install --upgrade build twine
python3 -m build
python3 -m twine upload dist/*
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
bugseq_client-0.1.6.tar.gz
(52.8 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
bugseq_client-0.1.6-py3-none-any.whl
(126.3 kB
view details)
File details
Details for the file bugseq_client-0.1.6.tar.gz.
File metadata
- Download URL: bugseq_client-0.1.6.tar.gz
- Upload date:
- Size: 52.8 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.13.1
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
a5745e1d292c8a656f0c5f8a723749081f1fa57519bee9760a3ed2987d160fe5
|
|
| MD5 |
6f9906db963f8ca44c7398be22780244
|
|
| BLAKE2b-256 |
527edd58abef9ff95775089372f8533e0ac6267a116778f0157128c1484bb9d2
|
File details
Details for the file bugseq_client-0.1.6-py3-none-any.whl.
File metadata
- Download URL: bugseq_client-0.1.6-py3-none-any.whl
- Upload date:
- Size: 126.3 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.13.1
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
11f9a4ea399064e44fb869787c7cd98ccbae5b6e42e0b098156f9a5a8a0ff883
|
|
| MD5 |
846d78c1b86606334b10e2883f2ae111
|
|
| BLAKE2b-256 |
7196af2cb7eae4296d459b1db4238cdbcf7734bc18d8599f909e692c0abd7331
|