Skip to content

Commit 1ea5c64

Browse files
fix(clickhouse): Guard against module shadowing
1 parent 86d326c commit 1ea5c64

File tree

2 files changed

+8
-12
lines changed

2 files changed

+8
-12
lines changed

sentry_sdk/integrations/clickhouse_driver.py

Lines changed: 8 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -31,6 +31,7 @@ def __getitem__(self, _):
3131

3232
try:
3333
import clickhouse_driver # type: ignore[import-not-found]
34+
from clickhouse_driver.client import Client
3435

3536
except ImportError:
3637
raise DidNotEnable("clickhouse-driver not installed.")
@@ -54,17 +55,13 @@ def setup_once() -> None:
5455

5556
# Every query ends either with the Client's `receive_end_of_query` (no result expected)
5657
# or its `receive_result` (result expected)
57-
clickhouse_driver.client.Client.receive_end_of_query = _wrap_end(
58-
clickhouse_driver.client.Client.receive_end_of_query
59-
)
60-
if hasattr(clickhouse_driver.client.Client, "receive_end_of_insert_query"):
58+
Client.receive_end_of_query = _wrap_end(Client.receive_end_of_query)
59+
if hasattr(Client, "receive_end_of_insert_query"):
6160
# In 0.2.7, insert queries are handled separately via `receive_end_of_insert_query`
62-
clickhouse_driver.client.Client.receive_end_of_insert_query = _wrap_end(
63-
clickhouse_driver.client.Client.receive_end_of_insert_query
61+
Client.receive_end_of_insert_query = _wrap_end(
62+
Client.receive_end_of_insert_query
6463
)
65-
clickhouse_driver.client.Client.receive_result = _wrap_end(
66-
clickhouse_driver.client.Client.receive_result
67-
)
64+
Client.receive_result = _wrap_end(Client.receive_result)
6865

6966

7067
P = ParamSpec("P")
@@ -128,7 +125,7 @@ def _inner_end(*args: "P.args", **kwargs: "P.kwargs") -> "T":
128125

129126

130127
def _wrap_send_data() -> None:
131-
original_send_data = clickhouse_driver.client.Client.send_data
128+
original_send_data = Client.send_data
132129

133130
def _inner_send_data( # type: ignore[no-untyped-def] # clickhouse-driver does not type send_data
134131
self, sample_block, data, types_check=False, columnar=False, *args, **kwargs
@@ -164,7 +161,7 @@ def wrapped_generator() -> "Iterator[Any]":
164161
self, sample_block, data, types_check, columnar, *args, **kwargs
165162
)
166163

167-
clickhouse_driver.client.Client.send_data = _inner_send_data
164+
Client.send_data = _inner_send_data
168165

169166

170167
def _set_db_data(

tests/test_shadowed_module.py

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -29,7 +29,6 @@ def pytest_generate_tests(metafunc):
2929
# Temporarily skip some integrations
3030
submodule_names
3131
- {
32-
"clickhouse_driver",
3332
"grpc",
3433
"litellm",
3534
"opentelemetry",

0 commit comments

Comments
 (0)