arrowbricks 4.0.0__tar.gz → 5.0.0__tar.gz
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- {arrowbricks-4.0.0 → arrowbricks-5.0.0}/PKG-INFO +1 -1
- {arrowbricks-4.0.0 → arrowbricks-5.0.0}/pyproject.toml +2 -1
- {arrowbricks-4.0.0 → arrowbricks-5.0.0}/rust/arrowbricks_core/Cargo.lock +1 -1
- {arrowbricks-4.0.0 → arrowbricks-5.0.0}/rust/arrowbricks_core/Cargo.toml +1 -1
- {arrowbricks-4.0.0 → arrowbricks-5.0.0}/src/arrowbricks/__init__.py +4 -0
- {arrowbricks-4.0.0 → arrowbricks-5.0.0}/src/arrowbricks/_streaming.py +8 -2
- {arrowbricks-4.0.0 → arrowbricks-5.0.0}/LICENSE +0 -0
- {arrowbricks-4.0.0 → arrowbricks-5.0.0}/README.md +0 -0
- {arrowbricks-4.0.0 → arrowbricks-5.0.0}/rust/arrowbricks_core/.gitignore +0 -0
- {arrowbricks-4.0.0 → arrowbricks-5.0.0}/rust/arrowbricks_core/README.md +0 -0
- {arrowbricks-4.0.0 → arrowbricks-5.0.0}/rust/arrowbricks_core/examples/duckdb_query.py +0 -0
- {arrowbricks-4.0.0 → arrowbricks-5.0.0}/rust/arrowbricks_core/examples/fastapi_sse.py +0 -0
- {arrowbricks-4.0.0 → arrowbricks-5.0.0}/rust/arrowbricks_core/proptest-regressions/json_convert.txt +0 -0
- {arrowbricks-4.0.0 → arrowbricks-5.0.0}/rust/arrowbricks_core/rustfmt.toml +0 -0
- {arrowbricks-4.0.0 → arrowbricks-5.0.0}/rust/arrowbricks_core/src/arrow_ffi.rs +0 -0
- {arrowbricks-4.0.0 → arrowbricks-5.0.0}/rust/arrowbricks_core/src/client/download.rs +0 -0
- {arrowbricks-4.0.0 → arrowbricks-5.0.0}/rust/arrowbricks_core/src/client/error.rs +0 -0
- {arrowbricks-4.0.0 → arrowbricks-5.0.0}/rust/arrowbricks_core/src/client/model.rs +0 -0
- {arrowbricks-4.0.0 → arrowbricks-5.0.0}/rust/arrowbricks_core/src/client/sea.rs +0 -0
- {arrowbricks-4.0.0 → arrowbricks-5.0.0}/rust/arrowbricks_core/src/client/thrift_rpc.rs +0 -0
- {arrowbricks-4.0.0 → arrowbricks-5.0.0}/rust/arrowbricks_core/src/client/volume.rs +0 -0
- {arrowbricks-4.0.0 → arrowbricks-5.0.0}/rust/arrowbricks_core/src/client.rs +0 -0
- {arrowbricks-4.0.0 → arrowbricks-5.0.0}/rust/arrowbricks_core/src/heartbeat.rs +0 -0
- {arrowbricks-4.0.0 → arrowbricks-5.0.0}/rust/arrowbricks_core/src/json_convert.rs +0 -0
- {arrowbricks-4.0.0 → arrowbricks-5.0.0}/rust/arrowbricks_core/src/lib.rs +0 -0
- {arrowbricks-4.0.0 → arrowbricks-5.0.0}/rust/arrowbricks_core/src/pipeline/ndjson.rs +0 -0
- {arrowbricks-4.0.0 → arrowbricks-5.0.0}/rust/arrowbricks_core/src/pipeline/reorder.rs +0 -0
- {arrowbricks-4.0.0 → arrowbricks-5.0.0}/rust/arrowbricks_core/src/pipeline/sea.rs +0 -0
- {arrowbricks-4.0.0 → arrowbricks-5.0.0}/rust/arrowbricks_core/src/pipeline/stats.rs +0 -0
- {arrowbricks-4.0.0 → arrowbricks-5.0.0}/rust/arrowbricks_core/src/pipeline/test_support.rs +0 -0
- {arrowbricks-4.0.0 → arrowbricks-5.0.0}/rust/arrowbricks_core/src/pipeline/thrift_exec.rs +0 -0
- {arrowbricks-4.0.0 → arrowbricks-5.0.0}/rust/arrowbricks_core/src/pipeline.rs +0 -0
- {arrowbricks-4.0.0 → arrowbricks-5.0.0}/rust/arrowbricks_core/src/thrift.rs +0 -0
- {arrowbricks-4.0.0 → arrowbricks-5.0.0}/rust/arrowbricks_core/tests/common/mod.rs +0 -0
- {arrowbricks-4.0.0 → arrowbricks-5.0.0}/rust/arrowbricks_core/tests/wiremock_pipeline.rs +0 -0
- {arrowbricks-4.0.0 → arrowbricks-5.0.0}/rust/arrowbricks_core/tests/wiremock_thrift.rs +0 -0
- {arrowbricks-4.0.0 → arrowbricks-5.0.0}/rust/arrowbricks_core/tests/wiremock_volume_files.rs +0 -0
- {arrowbricks-4.0.0 → arrowbricks-5.0.0}/rust/arrowbricks_core/tests_py/conftest.py +0 -0
- {arrowbricks-4.0.0 → arrowbricks-5.0.0}/rust/arrowbricks_core/tests_py/test_ipc_stream.py +0 -0
- {arrowbricks-4.0.0 → arrowbricks-5.0.0}/rust/arrowbricks_core/tests_py/test_parameters.py +0 -0
- {arrowbricks-4.0.0 → arrowbricks-5.0.0}/rust/arrowbricks_core/tests_py/test_stream_ndjson_lines.py +0 -0
- {arrowbricks-4.0.0 → arrowbricks-5.0.0}/rust/arrowbricks_core/tests_py/test_streaming.py +0 -0
- {arrowbricks-4.0.0 → arrowbricks-5.0.0}/rust/arrowbricks_core/tests_py/test_thrift.py +0 -0
- {arrowbricks-4.0.0 → arrowbricks-5.0.0}/rust/arrowbricks_core/tests_py/test_token_provider.py +0 -0
- {arrowbricks-4.0.0 → arrowbricks-5.0.0}/rust/arrowbricks_core/tests_py/test_volume_files.py +0 -0
- {arrowbricks-4.0.0 → arrowbricks-5.0.0}/rust/arrowbricks_core/tests_py/thrift_mock.py +0 -0
- {arrowbricks-4.0.0 → arrowbricks-5.0.0}/src/arrowbricks/_core.pyi +0 -0
- {arrowbricks-4.0.0 → arrowbricks-5.0.0}/src/arrowbricks/client.py +0 -0
- {arrowbricks-4.0.0 → arrowbricks-5.0.0}/src/arrowbricks/cursor.py +0 -0
- {arrowbricks-4.0.0 → arrowbricks-5.0.0}/src/arrowbricks/py.typed +0 -0
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
[project]
|
|
2
2
|
name = "arrowbricks"
|
|
3
|
-
version = "
|
|
3
|
+
version = "5.0.0"
|
|
4
4
|
description = "Runs SQL against a Databricks SQL warehouse via the Statement Execution API and hands you the result as Arrow -- a DB-API-ish Cursor (fetchone/fetchmany/fetchall/fetchall_arrow) or NDJSON streaming. Rust/PyO3 core throughout -- zero required runtime dependencies."
|
|
5
5
|
readme = "README.md"
|
|
6
6
|
license = "MIT"
|
|
@@ -76,6 +76,7 @@ dev = [
|
|
|
76
76
|
|
|
77
77
|
[tool.pytest.ini_options]
|
|
78
78
|
asyncio_mode = "auto"
|
|
79
|
+
asyncio_default_fixture_loop_scope = "function"
|
|
79
80
|
# Bare `pytest`/`pytest -q` (no explicit path) covers tests/ -- including
|
|
80
81
|
# tests/arro3_free (nested here on purpose; see its own conftest.py for why
|
|
81
82
|
# that doesn't pull arro3 into its collection) -- but NOT
|
|
@@ -1,3 +1,7 @@
|
|
|
1
|
+
# PEP 810 (Python 3.15+): defer loading these submodules until a name from
|
|
2
|
+
# them is first used. Older Pythons ignore this list and import eagerly.
|
|
3
|
+
__lazy_modules__ = ["arrowbricks._streaming", "arrowbricks.client", "arrowbricks.cursor"]
|
|
4
|
+
|
|
1
5
|
from ._core import ArrowbricksError, AuthError, QueryStats, StatementError, TransientError
|
|
2
6
|
from ._streaming import (
|
|
3
7
|
HEARTBEAT,
|
|
@@ -11,14 +11,16 @@ Python-side Arrow-to-JSON conversion step at all.
|
|
|
11
11
|
|
|
12
12
|
from __future__ import annotations
|
|
13
13
|
|
|
14
|
-
import asyncio
|
|
15
14
|
import contextlib
|
|
16
15
|
from collections.abc import AsyncIterator, Awaitable, Iterator
|
|
17
|
-
from typing import Any, BinaryIO, TypeVar, cast
|
|
16
|
+
from typing import TYPE_CHECKING, Any, BinaryIO, TypeVar, cast
|
|
18
17
|
|
|
19
18
|
from . import _core
|
|
20
19
|
from .client import DatabricksClient
|
|
21
20
|
|
|
21
|
+
if TYPE_CHECKING:
|
|
22
|
+
import asyncio
|
|
23
|
+
|
|
22
24
|
__all__ = [
|
|
23
25
|
"HEARTBEAT",
|
|
24
26
|
"QueryTimeout",
|
|
@@ -131,6 +133,10 @@ async def await_with_heartbeat(
|
|
|
131
133
|
Yields HEARTBEAT zero or more times, then yields the awaitable's real
|
|
132
134
|
result exactly once. Re-raises whatever `aw` raised, or QueryTimeout if
|
|
133
135
|
`total_timeout_s` elapses first."""
|
|
136
|
+
# Imported here, not at module level: asyncio costs ~27 ms to import and
|
|
137
|
+
# only this coroutine (already running inside a loop) needs it.
|
|
138
|
+
import asyncio
|
|
139
|
+
|
|
134
140
|
task: asyncio.Task[T] = asyncio.ensure_future(aw)
|
|
135
141
|
loop = asyncio.get_running_loop()
|
|
136
142
|
deadline = loop.time() + total_timeout_s if total_timeout_s is not None else None
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{arrowbricks-4.0.0 → arrowbricks-5.0.0}/rust/arrowbricks_core/proptest-regressions/json_convert.txt
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{arrowbricks-4.0.0 → arrowbricks-5.0.0}/rust/arrowbricks_core/tests/wiremock_volume_files.rs
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{arrowbricks-4.0.0 → arrowbricks-5.0.0}/rust/arrowbricks_core/tests_py/test_stream_ndjson_lines.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
{arrowbricks-4.0.0 → arrowbricks-5.0.0}/rust/arrowbricks_core/tests_py/test_token_provider.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|