diff --git a/CHANGELOG.md b/CHANGELOG.md index 8436541..674e2f3 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -7,6 +7,11 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0 ## [Unreleased] +### Changed + +- Require `hotdata>=0.11,<0.12` (was `>=0.9.0,<0.10`), so it can be + installed alongside `hotdata-framework` 0.14.1. Managed-table loads now send + `"async": false` explicitly, keeping them synchronous. ## [0.5.0] - 2026-08-11 diff --git a/pyproject.toml b/pyproject.toml index fcd697b..db16871 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -24,7 +24,7 @@ classifiers = [ ] dependencies = [ "ibis-framework>=12,<13", - "hotdata>=0.9.0,<0.10", + "hotdata>=0.11,<0.12", "pyarrow>=16", "pyarrow-hotfix>=0.6", "pandas>=2", diff --git a/src/ibis_hotdata/http.py b/src/ibis_hotdata/http.py index ca43862..eedc612 100644 --- a/src/ibis_hotdata/http.py +++ b/src/ibis_hotdata/http.py @@ -249,7 +249,7 @@ def load_managed_table( *, upload_id: str, ) -> dict[str, Any]: - req = LoadManagedTableRequest(mode="replace", upload_id=upload_id) + req = LoadManagedTableRequest(mode="replace", upload_id=upload_id, var_async=False) resp = self._safe_call( self._connections.load_managed_table, connection_id, diff --git a/tests/test_hotdata_backend.py b/tests/test_hotdata_backend.py index cc670aa..230ee2b 100644 --- a/tests/test_hotdata_backend.py +++ b/tests/test_hotdata_backend.py @@ -120,7 +120,7 @@ def mock_managed_create_table_flow( def on_load(req: Request) -> Response: body = req.get_json() - assert body == {"mode": "replace", "upload_id": "upl_1"} + assert body == {"async": False, "mode": "replace", "upload_id": "upl_1"} return Response( json.dumps( { diff --git a/tests/test_hotdata_http.py b/tests/test_hotdata_http.py index c00b253..18ee717 100644 --- a/tests/test_hotdata_http.py +++ b/tests/test_hotdata_http.py @@ -234,7 +234,7 @@ def test_upload_file_then_load_managed_table(httpserver: HTTPServer): def on_load(req: Request) -> Response: body = req.get_json() - assert body == {"mode": "replace", "upload_id": "upl_1"} + assert body == {"async": False, "mode": "replace", "upload_id": "upl_1"} payload = { "connection_id": "conn_sales", "schema_name": "public", diff --git a/uv.lock b/uv.lock index 3bff56d..e8eb709 100644 --- a/uv.lock +++ b/uv.lock @@ -109,7 +109,7 @@ name = "exceptiongroup" version = "1.3.1" source = { registry = "https://pypi.org/simple" } dependencies = [ - { name = "typing-extensions" }, + { name = "typing-extensions", marker = "python_full_version < '3.11'" }, ] sdist = { url = "https://files.pythonhosted.org/packages/50/79/66800aadf48771f6b62f7eb014e352e5d06856655206165d775e675a02c9/exceptiongroup-1.3.1.tar.gz", hash = "sha256:8b412432c6055b0b7d14c310000ae93352ed6754f70fa8f7c34141f91c4e3219", size = 30371, upload-time = "2025-11-21T23:01:54.787Z" } wheels = [ @@ -127,7 +127,7 @@ wheels = [ [[package]] name = "hotdata" -version = "0.9.0" +version = "0.11.0" source = { registry = "https://pypi.org/simple" } dependencies = [ { name = "pydantic" }, @@ -135,9 +135,9 @@ dependencies = [ { name = "typing-extensions" }, { name = "urllib3" }, ] -sdist = { url = "https://files.pythonhosted.org/packages/6e/db/91d0e8f8a8bfc9a76b588c8dc2ecb054d3e70ebf2ee7a70cd6e4a99a7dec/hotdata-0.9.0.tar.gz", hash = "sha256:35e4a569b7223e025c26b0d3299c8b4cd493276f32826682de6df9e583cea4ef", size = 217368, upload-time = "2026-08-11T14:09:08.166Z" } +sdist = { url = "https://files.pythonhosted.org/packages/1d/10/1a21c58de1fee8c63bf983db9531704e9b0611c63fd7a849a9ffdf9cc8c7/hotdata-0.11.0.tar.gz", hash = "sha256:a0e9fd242baa51b9350a969222319bcdf2c6ede1cf2e8a99e3f81d608af7b6fc", size = 207167, upload-time = "2026-09-18T20:58:41.802Z" } wheels = [ - { url = "https://files.pythonhosted.org/packages/ec/48/9b2f5cbbcc92e6dc06a6980fcf4413b83484af302a78263381a22236c308/hotdata-0.9.0-py3-none-any.whl", hash = "sha256:9d942a0d78979552ad641419e5706c9703d5165db0cf3497ae49344cd032e635", size = 316070, upload-time = "2026-08-11T14:09:06.589Z" }, + { url = "https://files.pythonhosted.org/packages/ac/a4/cc71105c5971d29b40cfff76ab592fed95e1d433903631f9d2fccede50a4/hotdata-0.11.0-py3-none-any.whl", hash = "sha256:4ece2f43bac9a4f43ad32c305aa93042aa4a4f68a5bbdec4f2c6ae0b29f591d6", size = 292742, upload-time = "2026-09-18T20:58:40.049Z" }, ] [[package]] @@ -165,7 +165,7 @@ dev = [ [package.metadata] requires-dist = [ - { name = "hotdata", specifier = ">=0.9.0,<0.10" }, + { name = "hotdata", specifier = ">=0.11,<0.12" }, { name = "ibis-framework", specifier = ">=12,<13" }, { name = "pandas", specifier = ">=2" }, { name = "pyarrow", specifier = ">=16" }, @@ -656,10 +656,10 @@ resolution-markers = [ "python_full_version < '3.11'", ] dependencies = [ - { name = "numpy", version = "2.2.6", source = { registry = "https://pypi.org/simple" } }, - { name = "python-dateutil" }, - { name = "pytz" }, - { name = "tzdata" }, + { name = "numpy", version = "2.2.6", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version < '3.11'" }, + { name = "python-dateutil", marker = "python_full_version < '3.11'" }, + { name = "pytz", marker = "python_full_version < '3.11'" }, + { name = "tzdata", marker = "python_full_version < '3.11'" }, ] sdist = { url = "https://files.pythonhosted.org/packages/33/01/d40b85317f86cf08d853a4f495195c73815fdf205eef3993821720274518/pandas-2.3.3.tar.gz", hash = "sha256:e05e1af93b977f7eafa636d043f9f94c7ee3ac81af99c13508215942e64c993b", size = 4495223, upload-time = "2025-09-29T23:34:51.853Z" } wheels = [ @@ -728,9 +728,9 @@ resolution-markers = [ "python_full_version >= '3.11' and python_full_version < '3.14' and sys_platform != 'emscripten' and sys_platform != 'win32'", ] dependencies = [ - { name = "numpy", version = "2.4.4", source = { registry = "https://pypi.org/simple" } }, - { name = "python-dateutil" }, - { name = "tzdata", marker = "sys_platform == 'emscripten' or sys_platform == 'win32'" }, + { name = "numpy", version = "2.4.4", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version >= '3.11'" }, + { name = "python-dateutil", marker = "python_full_version >= '3.11'" }, + { name = "tzdata", marker = "(python_full_version >= '3.11' and sys_platform == 'emscripten') or (python_full_version >= '3.11' and sys_platform == 'win32')" }, ] sdist = { url = "https://files.pythonhosted.org/packages/da/99/b342345300f13440fe9fe385c3c481e2d9a595ee3bab4d3219247ac94e9a/pandas-3.0.2.tar.gz", hash = "sha256:f4753e73e34c8d83221ba58f232433fca2748be8b18dbca02d242ed153945043", size = 4645855, upload-time = "2026-03-31T06:48:30.816Z" } wheels = [