Skip to content

Commit f46097e

Browse files
committed
feat: add eval-type-backport and remove bind_key for now
1 parent f7e0d66 commit f46097e

File tree

5 files changed

+81
-83
lines changed

5 files changed

+81
-83
lines changed

pyproject.toml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
[project]
22
authors = [{ name = "Cody Fincher", email = "[email protected]" }]
3-
dependencies = ["typing-extensions", "sqlglot"]
3+
dependencies = ["typing-extensions", "sqlglot", "eval_type_backport; python_version < \"3.10\""]
44
description = "SQL Experiments in Python"
55
maintainers = [{ name = "Litestar Developers", email = "[email protected]" }]
66
name = "sqlspec"

sqlspec/adapters/psycopg/config/_sync.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -61,7 +61,7 @@ def create_pool(self) -> ConnectionPool:
6161

6262
pool_config = self.pool_config_dict
6363
self.pool_instance = ConnectionPool(**pool_config)
64-
if self.pool_instance is None:
64+
if self.pool_instance is None: # pyright: ignore[reportUnnecessaryComparison]
6565
msg = "Could not configure the 'pool_instance'. Please check your configuration." # type: ignore[unreachable]
6666
raise ImproperConfigurationError(msg)
6767
return self.pool_instance

sqlspec/base.py

Lines changed: 0 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -21,13 +21,6 @@ class DatabaseConfigProtocol(Generic[ConnectionT, PoolT], ABC):
2121
__is_async__: bool = field(default=False, init=False)
2222
__supports_connection_pooling__: bool = field(default=False, init=False)
2323

24-
bind_key: str
25-
26-
def __post_init__(self) -> None:
27-
"""Post-initialization validation and processing."""
28-
if not self.bind_key:
29-
self.bind_key = "default"
30-
3124
@abstractmethod
3225
def create_connection(self) -> Union[ConnectionT, Awaitable[ConnectionT]]:
3326
"""Create and return a new database connection."""
@@ -92,6 +85,3 @@ class GenericPoolConfig:
9285
@dataclass
9386
class GenericDatabaseConfig:
9487
"""Generic Database Configuration."""
95-
96-
bind_key: str
97-
"""The key to bind the database configuration to."""

tests/unit/test_adapters/test_duckdb/test_config.py

Lines changed: 8 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -76,7 +76,7 @@ class TestDuckDBConfig:
7676

7777
def test_default_values(self) -> None:
7878
"""Test default values for DuckDBConfig."""
79-
config = DuckDBConfig(bind_key="test")
79+
config = DuckDBConfig()
8080
assert config.database is Empty
8181
assert config.read_only is Empty
8282
assert config.config == {}
@@ -85,18 +85,17 @@ def test_default_values(self) -> None:
8585

8686
def test_connection_config_dict_defaults(self) -> None:
8787
"""Test connection_config_dict with default values."""
88-
config = DuckDBConfig(bind_key="test")
88+
config = DuckDBConfig()
8989
assert config.connection_config_dict == {"database": ":memory:", "config": {}}
9090

9191
def test_connection_config_dict_with_values(self) -> None:
9292
"""Test connection_config_dict with custom values."""
93-
config = DuckDBConfig(bind_key="test", database="test.db", read_only=True)
93+
config = DuckDBConfig(database="test.db", read_only=True)
9494
assert config.connection_config_dict == {"database": "test.db", "read_only": True, "config": {}}
9595

9696
def test_extensions_from_config_dict(self) -> None:
9797
"""Test extension configuration from config dictionary."""
9898
config = DuckDBConfig(
99-
bind_key="test",
10099
config={
101100
"extensions": {
102101
"ext1": True,
@@ -119,7 +118,7 @@ def test_extensions_from_config_dict(self) -> None:
119118

120119
def test_extensions_from_list(self) -> None:
121120
"""Test extension configuration from list."""
122-
config = DuckDBConfig(bind_key="test", config={"extensions": ["ext1", "ext2"]})
121+
config = DuckDBConfig(config={"extensions": ["ext1", "ext2"]})
123122
assert isinstance(config.extensions, list)
124123
assert len(config.extensions) == 2
125124
assert all(isinstance(ext, ExtensionConfig) for ext in config.extensions)
@@ -129,7 +128,6 @@ def test_extensions_from_list(self) -> None:
129128
def test_extensions_from_both_sources(self) -> None:
130129
"""Test extension configuration from both extensions and config."""
131130
config = DuckDBConfig(
132-
bind_key="test",
133131
extensions=[ExtensionConfig("ext1")],
134132
config={"extensions": {"ext2": {"force_install": True}}},
135133
)
@@ -141,7 +139,6 @@ def test_duplicate_extensions_error(self) -> None:
141139
"""Test error on duplicate extension configuration."""
142140
with pytest.raises(ImproperConfigurationError, match="Configuring the same extension"):
143141
DuckDBConfig(
144-
bind_key="test",
145142
extensions=[ExtensionConfig("ext1")],
146143
config={"extensions": {"ext1": True}},
147144
)
@@ -152,7 +149,7 @@ def test_invalid_extensions_type_error(self) -> None:
152149
ImproperConfigurationError,
153150
match="When configuring extensions in the 'config' dictionary, the value must be a dictionary or sequence of extension names",
154151
):
155-
DuckDBConfig(bind_key="test", config={"extensions": 123})
152+
DuckDBConfig(config={"extensions": 123})
156153

157154
@pytest.mark.parametrize(
158155
("extension_config", "expected_calls"),
@@ -225,7 +222,7 @@ def test_configure_extensions(
225222
expected_calls: list[tuple[str, dict[str, Any]]],
226223
) -> None:
227224
"""Test extension configuration with various settings."""
228-
config = DuckDBConfig(bind_key="test", extensions=[extension_config])
225+
config = DuckDBConfig(extensions=[extension_config])
229226
connection = config.create_connection()
230227

231228
actual_calls = []
@@ -242,14 +239,14 @@ def test_configure_extensions(
242239
def test_extension_configuration_error(self, mock_duckdb_connection: MagicMock) -> None:
243240
"""Test error handling during extension configuration."""
244241
mock_duckdb_connection.load_extension.side_effect = Exception("Test error")
245-
config = DuckDBConfig(bind_key="test", extensions=[ExtensionConfig("test")])
242+
config = DuckDBConfig(extensions=[ExtensionConfig("test")])
246243

247244
with pytest.raises(ImproperConfigurationError, match="Failed to configure extension test"):
248245
config.create_connection()
249246

250247
def test_connection_creation_error(self) -> None:
251248
"""Test error handling during connection creation."""
252249
with patch("duckdb.connect", side_effect=Exception("Test error")):
253-
config = DuckDBConfig(bind_key="test")
250+
config = DuckDBConfig()
254251
with pytest.raises(ImproperConfigurationError, match="Could not configure"):
255252
config.create_connection()

0 commit comments

Comments
 (0)