diff --git a/.github/workflows/publish.yml b/.github/workflows/publish.yml index 2ee653f..a04c7d1 100644 --- a/.github/workflows/publish.yml +++ b/.github/workflows/publish.yml @@ -57,7 +57,7 @@ jobs: runs-on: ubuntu-latest environment: name: pypi - url: https://pypi.org/p/ibis-hotdata + url: https://pypi.org/p/hotdata-ibis permissions: id-token: write steps: diff --git a/README.md b/README.md index e6d0931..de87960 100644 --- a/README.md +++ b/README.md @@ -1,4 +1,4 @@ -# ibis-hotdata +# hotdata-ibis Experimental [Ibis](https://ibis-project.org/) backend for [Hotdata](https://www.hotdata.dev/docs/api-reference): compile expressions with Ibis, run federated SQL over the Hotdata API. REST calls use the official **[hotdata](https://github.com/hotdata-dev/sdk-python)** Python SDK. Repo examples use **httpx** (listed under the **dev** dependency group). @@ -7,8 +7,8 @@ Experimental [Ibis](https://ibis-project.org/) backend for [Hotdata](https://www ## Install ```bash -uv pip install ibis-hotdata -# or: python -m pip install ibis-hotdata +uv pip install hotdata-ibis +# or: python -m pip install hotdata-ibis ``` ## Features @@ -58,7 +58,7 @@ con = ibis.connect( ## Ibis Support Overview -`ibis-hotdata` is a read-oriented SQL backend. It is useful for exploring Hotdata workspaces with Ibis expressions, running federated SQL, and materializing results locally, but it is not a full mutable database backend. +`hotdata-ibis` is a read-oriented SQL backend. It is useful for exploring Hotdata workspaces with Ibis expressions, running federated SQL, and materializing results locally, but it is not a full mutable database backend. Supported today: diff --git a/pyproject.toml b/pyproject.toml index d7136cc..04f4c54 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -3,7 +3,7 @@ requires = ["setuptools>=61", "wheel"] build-backend = "setuptools.build_meta" [project] -name = "ibis-hotdata" +name = "hotdata-ibis" version = "0.1.0" description = "Ibis backend for Hotdata federated SQL API (depends on the hotdata SDK only; not hotdata-runtime)" readme = "README.md" diff --git a/src/ibis_hotdata/__init__.py b/src/ibis_hotdata/__init__.py index 21570c2..8b5f13b 100644 --- a/src/ibis_hotdata/__init__.py +++ b/src/ibis_hotdata/__init__.py @@ -1,7 +1,7 @@ from importlib.metadata import PackageNotFoundError, version try: - __version__ = version("ibis-hotdata") + __version__ = version("hotdata-ibis") except PackageNotFoundError: __version__ = "0.0.0+unknown" diff --git a/src/ibis_hotdata/backend.py b/src/ibis_hotdata/backend.py index c5ba6d5..d7d4ff7 100644 --- a/src/ibis_hotdata/backend.py +++ b/src/ibis_hotdata/backend.py @@ -663,7 +663,7 @@ def _register_in_memory_table(self, _op: ops.InMemoryTable) -> None: @cached_property def version(self) -> str: try: - v = pkg_version("ibis-hotdata") + v = pkg_version("hotdata-ibis") except PackageNotFoundError: v = "0.0.0" - return f"ibis-hotdata {v} (Hotdata /v1/query)" + return f"hotdata-ibis {v} (Hotdata /v1/query)" diff --git a/tests/test_version.py b/tests/test_version.py index d52a9df..36a970e 100644 --- a/tests/test_version.py +++ b/tests/test_version.py @@ -10,4 +10,4 @@ def test_version_is_pep440_core(): def test_version_matches_distribution_metadata(): - assert dist_version("ibis-hotdata") == ibis_hotdata.__version__ + assert dist_version("hotdata-ibis") == ibis_hotdata.__version__ diff --git a/uv.lock b/uv.lock index 85331fe..b10f31f 100644 --- a/uv.lock +++ b/uv.lock @@ -97,6 +97,46 @@ wheels = [ { url = "https://files.pythonhosted.org/packages/9a/e7/63b4820963ec475fe16403d363e5ddec237cfe01a39c2d7aff6a6d48d720/hotdata-0.2.0-py3-none-any.whl", hash = "sha256:d3d644a3b607f4891a784b8d5afa30a00bd9e437db013fd0581bf8bca501ac0d", size = 256603, upload-time = "2026-05-19T04:01:36.253Z" }, ] +[[package]] +name = "hotdata-ibis" +version = "0.1.0" +source = { editable = "." } +dependencies = [ + { name = "hotdata" }, + { name = "ibis-framework" }, + { name = "pandas", version = "2.3.3", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version < '3.11'" }, + { name = "pandas", version = "3.0.2", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version >= '3.11'" }, + { name = "pyarrow" }, + { name = "pyarrow-hotfix" }, + { name = "sqlglot" }, +] + +[package.dev-dependencies] +dev = [ + { name = "httpx" }, + { name = "pytest" }, + { name = "pytest-httpserver" }, + { name = "ruff" }, +] + +[package.metadata] +requires-dist = [ + { name = "hotdata", specifier = ">=0.2.0" }, + { name = "ibis-framework", specifier = ">=10.0,<11" }, + { name = "pandas", specifier = ">=2" }, + { name = "pyarrow", specifier = ">=15" }, + { name = "pyarrow-hotfix", specifier = ">=0.6" }, + { name = "sqlglot", specifier = ">=24" }, +] + +[package.metadata.requires-dev] +dev = [ + { name = "httpx", specifier = ">=0.27" }, + { name = "pytest", specifier = ">=8" }, + { name = "pytest-httpserver", specifier = ">=1" }, + { name = "ruff", specifier = ">=0.5" }, +] + [[package]] name = "httpcore" version = "1.0.9" @@ -143,46 +183,6 @@ wheels = [ { url = "https://files.pythonhosted.org/packages/b5/6c/5e45e5946be73214c9a7e9be09476407ddd55aa9edc58056775ec591549c/ibis_framework-10.8.0-py3-none-any.whl", hash = "sha256:17014772b8ba3a69336601af097e3f968e8cbef6e90c0b416e60c459ea1a0aae", size = 1941834, upload-time = "2025-07-28T21:28:38.757Z" }, ] -[[package]] -name = "ibis-hotdata" -version = "0.1.0" -source = { editable = "." } -dependencies = [ - { name = "hotdata" }, - { name = "ibis-framework" }, - { name = "pandas", version = "2.3.3", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version < '3.11'" }, - { name = "pandas", version = "3.0.2", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version >= '3.11'" }, - { name = "pyarrow" }, - { name = "pyarrow-hotfix" }, - { name = "sqlglot" }, -] - -[package.dev-dependencies] -dev = [ - { name = "httpx" }, - { name = "pytest" }, - { name = "pytest-httpserver" }, - { name = "ruff" }, -] - -[package.metadata] -requires-dist = [ - { name = "hotdata", specifier = ">=0.2.0" }, - { name = "ibis-framework", specifier = ">=10.0,<11" }, - { name = "pandas", specifier = ">=2" }, - { name = "pyarrow", specifier = ">=15" }, - { name = "pyarrow-hotfix", specifier = ">=0.6" }, - { name = "sqlglot", specifier = ">=24" }, -] - -[package.metadata.requires-dev] -dev = [ - { name = "httpx", specifier = ">=0.27" }, - { name = "pytest", specifier = ">=8" }, - { name = "pytest-httpserver", specifier = ">=1" }, - { name = "ruff", specifier = ">=0.5" }, -] - [[package]] name = "idna" version = "3.13"