Skip to content

Commit 3ba4d5c

Browse files
authored
Remove outdated 'uri' param from Metastore constructor (#1622)
1 parent 7b1297a commit 3ba4d5c

File tree

4 files changed

+6
-44
lines changed

4 files changed

+6
-44
lines changed

src/datachain/data_storage/metastore.py

Lines changed: 1 addition & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -54,7 +54,6 @@
5454
DatasetRecord,
5555
DatasetStatus,
5656
DatasetVersion,
57-
StorageURI,
5857
parse_schema,
5958
)
6059
from datachain.error import (
@@ -96,8 +95,6 @@ class AbstractMetastore(ABC, Serializable):
9695
This manages the storing, searching, and retrieval of indexed metadata.
9796
"""
9897

99-
uri: StorageURI
100-
10198
schema: "schema.Schema"
10299
namespace_class: type[Namespace] = Namespace
103100
project_class: type[Project] = Project
@@ -111,12 +108,6 @@ class AbstractMetastore(ABC, Serializable):
111108
checkpoint_class: type[Checkpoint] = Checkpoint
112109
checkpoint_event_class: type[CheckpointEvent] = CheckpointEvent
113110

114-
def __init__(
115-
self,
116-
uri: StorageURI | None = None,
117-
):
118-
self.uri = uri or StorageURI("")
119-
120111
def __enter__(self) -> Self:
121112
"""Returns self upon entering context manager."""
122113
return self
@@ -127,10 +118,9 @@ def __exit__(self, exc_type, exc_value, traceback) -> None:
127118
@abstractmethod
128119
def clone(
129120
self,
130-
uri: StorageURI | None = None,
131121
use_new_connection: bool = False,
132122
) -> "AbstractMetastore":
133-
"""Clones AbstractMetastore implementation for some Storage input.
123+
"""Clones AbstractMetastore implementation.
134124
Setting use_new_connection will always use a new database connection.
135125
New connections should only be used if needed due to errors with
136126
closed connections."""
@@ -685,10 +675,6 @@ class AbstractDBMetastore(AbstractMetastore):
685675

686676
db: "DatabaseEngine"
687677

688-
def __init__(self, uri: StorageURI | None = None):
689-
uri = uri or StorageURI("")
690-
super().__init__(uri)
691-
692678
def close(self) -> None:
693679
"""Closes any active database connections."""
694680
self.db.close()

src/datachain/data_storage/sqlite.py

Lines changed: 2 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -448,14 +448,11 @@ class SQLiteMetastore(AbstractDBMetastore):
448448

449449
def __init__(
450450
self,
451-
uri: StorageURI | None = None,
452451
db: SQLiteDatabaseEngine | None = None,
453452
db_file: str | None = None,
454453
in_memory: bool = False,
455454
):
456-
uri = uri or StorageURI("")
457455
self.schema: DefaultSchema = DefaultSchema()
458-
super().__init__(uri)
459456

460457
# needed for dropping tables in correct order for tests because of
461458
# foreign keys
@@ -478,14 +475,9 @@ def __exit__(self, exc_type, exc_value, traceback) -> None:
478475

479476
def clone(
480477
self,
481-
uri: StorageURI | None = None,
482478
use_new_connection: bool = False,
483479
) -> "SQLiteMetastore":
484-
uri = uri or StorageURI("")
485-
if not uri and self.uri:
486-
uri = self.uri
487-
488-
return SQLiteMetastore(uri=uri, db=self.db.clone())
480+
return SQLiteMetastore(db=self.db.clone())
489481

490482
def clone_params(self) -> tuple[Callable[..., Any], list[Any], dict[str, Any]]:
491483
"""
@@ -496,7 +488,6 @@ def clone_params(self) -> tuple[Callable[..., Any], list[Any], dict[str, Any]]:
496488
SQLiteMetastore.init_after_clone,
497489
[],
498490
{
499-
"uri": self.uri,
500491
"db_clone_params": self.db.clone_params(),
501492
},
502493
)
@@ -509,11 +500,10 @@ def serialize_callable_name(cls) -> str:
509500
def init_after_clone(
510501
cls,
511502
*,
512-
uri: StorageURI,
513503
db_clone_params: tuple[Callable, list, dict[str, Any]],
514504
) -> "SQLiteMetastore":
515505
(db_class, db_args, db_kwargs) = db_clone_params
516-
return cls(uri=uri, db=db_class(*db_args, **db_kwargs))
506+
return cls(db=db_class(*db_args, **db_kwargs))
517507

518508
@cached_property
519509
def _meta(self) -> Table:

tests/unit/test_catalog_loader.py

Lines changed: 2 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -14,7 +14,6 @@
1414
SQLiteMetastore,
1515
SQLiteWarehouse,
1616
)
17-
from datachain.dataset import StorageURI
1817

1918

2019
class DistributedClass:
@@ -23,19 +22,15 @@ def __init__(self, **kwargs):
2322

2423

2524
def test_get_metastore(sqlite_db):
26-
uri = StorageURI("s3://bucket")
27-
28-
metastore = SQLiteMetastore(uri, sqlite_db.clone())
25+
metastore = SQLiteMetastore(db=sqlite_db.clone())
2926
try:
30-
assert metastore.uri == uri
3127
assert metastore.db.db_file == sqlite_db.db_file
3228

3329
with patch.dict(os.environ, {"DATACHAIN__METASTORE": metastore.serialize()}):
3430
metastore2 = get_metastore()
3531
try:
3632
assert metastore2
3733
assert isinstance(metastore2, SQLiteMetastore)
38-
assert metastore2.uri == uri
3934
assert metastore2.db.db_file == sqlite_db.db_file
4035
assert metastore2.clone_params() == metastore.clone_params()
4136
finally:
@@ -146,8 +141,7 @@ def test_get_distributed_class(monkeypatch):
146141

147142

148143
def test_get_catalog(sqlite_db):
149-
uri = StorageURI("s3://bucket")
150-
metastore = SQLiteMetastore(uri, sqlite_db.clone())
144+
metastore = SQLiteMetastore(db=sqlite_db.clone())
151145
warehouse = SQLiteWarehouse(sqlite_db.clone())
152146
env = {
153147
"DATACHAIN__METASTORE": metastore.serialize(),
@@ -161,7 +155,6 @@ def test_get_catalog(sqlite_db):
161155

162156
assert catalog.metastore
163157
assert isinstance(catalog.metastore, SQLiteMetastore)
164-
assert catalog.metastore.uri == uri
165158
assert catalog.metastore.db.db_file == sqlite_db.db_file
166159
assert catalog.metastore.clone_params() == metastore.clone_params()
167160

tests/unit/test_metastore.py

Lines changed: 1 addition & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -5,23 +5,18 @@
55

66
from datachain.data_storage.serializer import deserialize
77
from datachain.data_storage.sqlite import SCHEMA_VERSION, SQLiteMetastore
8-
from datachain.dataset import StorageURI
98
from datachain.error import OutdatedDatabaseSchemaError
109
from tests.conftest import cleanup_sqlite_db
1110

1211

1312
def test_sqlite_metastore(sqlite_db):
14-
uri = StorageURI("s3://bucket")
15-
16-
obj = SQLiteMetastore(uri, sqlite_db)
17-
assert obj.uri == uri
13+
obj = SQLiteMetastore(db=sqlite_db)
1814
assert obj.db == sqlite_db
1915

2016
# Test clone
2117
obj2 = obj.clone()
2218
try:
2319
assert isinstance(obj2, SQLiteMetastore)
24-
assert obj2.uri == uri
2520
assert obj2.db.db_file == sqlite_db.db_file
2621
assert obj2.clone_params() == obj.clone_params()
2722

@@ -32,7 +27,6 @@ def test_sqlite_metastore(sqlite_db):
3227
data = json.loads(raw.decode())
3328
assert data["callable"] == "sqlite.metastore.init_after_clone"
3429
assert data["args"] == []
35-
assert data["kwargs"]["uri"] == uri
3630
nested = data["kwargs"]["db_clone_params"]
3731
assert nested["callable"] == "sqlite.from_db_file"
3832
assert nested["args"] == [":memory:"]
@@ -41,7 +35,6 @@ def test_sqlite_metastore(sqlite_db):
4135
obj3 = deserialize(serialized)
4236
try:
4337
assert isinstance(obj3, SQLiteMetastore)
44-
assert obj3.uri == uri
4538
assert obj3.db.db_file == sqlite_db.db_file
4639
assert obj3.clone_params() == obj.clone_params()
4740
finally:

0 commit comments

Comments
 (0)