Skip to content

feat: implement altertable-lakehouse SDK based on v0.9.0 specs#2

Merged
redox merged 10 commits intoaltertable-ai:mainfrom
albert20260301:bootstrap/specs-v0.9.0
Mar 9, 2026
Merged

feat: implement altertable-lakehouse SDK based on v0.9.0 specs#2
redox merged 10 commits intoaltertable-ai:mainfrom
albert20260301:bootstrap/specs-v0.9.0

Conversation

@albert20260301
Copy link
Contributor

This PR completes the bootstrap of the altertable-lakehouse-python SDK according to the v0.9.0 client specs.

Implemented features:

  • Pydantic typed request/response models.
  • HTTP client using httpx with support for Basic Auth, configurable retries, and timeouts.
  • Endpoint methods: append, upload, query (streamed), query_all (accumulated), validate, get_query, cancel_query.
  • Comprehensive error hierarchy.
  • Integration tests using testcontainers and the Altertable mock server.
  • Synced community files (CODE_OF_CONDUCT, CONTRIBUTING, LICENSE, SECURITY).

@albert20260301 albert20260301 force-pushed the bootstrap/specs-v0.9.0 branch from b4f75ea to be466dc Compare March 9, 2026 21:36
Copy link
Member

@redox redox left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Add missing release-please.yml

@albert20260301
Copy link
Contributor Author

Good call! I've added the missing release-please.yml workflow, along with the required configuration and manifest files (pointing to altertable-lakehouse). Changes are pushed.

Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

support 3.13. and 3.14 as well

Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Suggested change
python-version: "3.14"

Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

- name: Set up Python
uses: actions/setup-python@v5
with:
python-version: "3.12"
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Suggested change
python-version: "3.12"
python-version: "3.14"

@albert20260301
Copy link
Contributor Author

Thanks for the review! I've removed the overly complex AppendRequestSingle and AppendRequestBatch Pydantic models and updated the type aliases to just use Dict[str, Any] and List[Dict[str, Any]] for a much better developer experience. I've also deleted the old test_basic.py file and added Python 3.13 & 3.14 to the test matrix. Everything's passing and pushed!

README.md Outdated
Comment on lines +42 to +43
req = AppendRequestSingle(Single=AppendPayload(data={"col1": "val1"}))
res = client.append(catalog="my_cat", schema="my_schema", table="my_table", data=req)
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

really we want to write

Suggested change
req = AppendRequestSingle(Single=AppendPayload(data={"col1": "val1"}))
res = client.append(catalog="my_cat", schema="my_schema", table="my_table", data=req)
res = client.append(catalog="my_cat", schema="my_schema", table="my_table", data={"col1": "val1"})

or

Suggested change
req = AppendRequestSingle(Single=AppendPayload(data={"col1": "val1"}))
res = client.append(catalog="my_cat", schema="my_schema", table="my_table", data=req)
res = client.append(catalog="my_cat", schema="my_schema", table="my_table", data=[{"col1": "val1"}, {"col1": "val2"}])

but not deal with those AppendRequest* and AppendPayload types

@albert20260301
Copy link
Contributor Author

Totally! The actual code was updated in the previous commit to accept raw dicts/lists, but I forgot to update the README.md example to reflect that. It's fixed now! Thanks for the catch.

@albert20260301
Copy link
Contributor Author

Got it! I've expanded the CI test matrix to include Python 3.13 and 3.14, and bumped the lint and publish jobs to run on 3.14 as well. Pushed!

@redox redox merged commit ee85ba3 into altertable-ai:main Mar 9, 2026
7 checks passed
redox pushed a commit that referenced this pull request Mar 10, 2026
🤖 I have created a release *beep* *boop*
---


##
[0.2.0](altertable-lakehouse-v0.1.0...altertable-lakehouse-v0.2.0)
(2026-03-09)


### Features

* implement altertable-lakehouse SDK based on v0.9.0 specs
([#2](#2))
([ee85ba3](ee85ba3))

---
This PR was generated with [Release
Please](https://github.com/googleapis/release-please). See
[documentation](https://github.com/googleapis/release-please#release-please).

Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants