Skip to content

Commit 47084c9

Browse files
committed
refactor: rename get_splitgill_database importer method get_database and make more user friendly
Raising a ValueError is a bit mean. Also allow str view parameter. All very nice.
1 parent b87c72f commit 47084c9

File tree

3 files changed

+19
-15
lines changed

3 files changed

+19
-15
lines changed

dataimporter/cli/main.py

+1-1
Original file line numberDiff line numberDiff line change
@@ -39,7 +39,7 @@ def get_status(config: Config):
3939
console.log("Queue size:", view.count())
4040

4141
try:
42-
database = importer.get_splitgill_database(view)
42+
database = importer.get_database(view)
4343
except ValueError:
4444
console.log(Rule())
4545
continue

dataimporter/importer.py

+13-9
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,7 @@
22
from functools import partial
33
from itertools import groupby
44
from pathlib import Path
5-
from typing import Iterable, List, Optional
5+
from typing import Iterable, List, Optional, Union
66

77
from splitgill.manager import SplitgillClient, SplitgillDatabase
88
from splitgill.model import Record
@@ -141,16 +141,20 @@ def get_view(self, name: str) -> Optional[View]:
141141
return view
142142
return None
143143

144-
def get_splitgill_database(self, view: View) -> SplitgillDatabase:
144+
def get_database(self, view: Union[str, View]) -> Optional[SplitgillDatabase]:
145145
"""
146146
Returns a new SplitgillDatabase instance for the given view. If the view doesn't
147-
have an associated SplitgillDatabase name, then a ValueError is raised.
147+
have an associated SplitgillDatabase name, then None is returned.
148148
149-
:param view: a view
150-
:return: a SplitgillDatabase instance
149+
:param view: a View instance or a view's name
150+
:return: a SplitgillDatabase instance or None
151151
"""
152+
if isinstance(view, str):
153+
view = self.get_view(view)
154+
if view is None:
155+
return None
152156
if not view.has_database:
153-
raise ValueError("View does not have a sg_name")
157+
return None
154158
return SplitgillDatabase(view.sg_name, self.client)
155159

156160
def queue_changes(self, records: Iterable[SourceRecord], store_name: str):
@@ -266,7 +270,7 @@ def add_to_mongo(self, view_name: str, everything: bool = False) -> Optional[int
266270
self.release_records(now())
267271

268272
view = self.get_view(view_name)
269-
database = self.get_splitgill_database(view)
273+
database = self.get_database(view)
270274

271275
if everything:
272276
changed_records = view.iter_all()
@@ -303,7 +307,7 @@ def sync_to_elasticsearch(self, view_name: str, resync: bool = False):
303307
haven't changed
304308
"""
305309
view = self.get_view(view_name)
306-
database = self.get_splitgill_database(view)
310+
database = self.get_database(view)
307311
database.sync(resync=resync)
308312

309313
def force_merge(self, view_name: str) -> dict:
@@ -315,7 +319,7 @@ def force_merge(self, view_name: str) -> dict:
315319
:return:
316320
"""
317321
view = self.get_view(view_name)
318-
database = self.get_splitgill_database(view)
322+
database = self.get_database(view)
319323
client = self.client.elasticsearch
320324
return client.options(request_timeout=None).indices.forcemerge(
321325
index=database.indices.wildcard,

tests/test_importer.py

+5-5
Original file line numberDiff line numberDiff line change
@@ -291,7 +291,7 @@ def test_add_to_mongo_and_sync_to_elasticsearch_artefact(self, config: Config):
291291

292292
importer.add_to_mongo(name)
293293

294-
database = importer.get_splitgill_database(importer.get_view(name))
294+
database = importer.get_database(importer.get_view(name))
295295
assert database.get_committed_version() == to_timestamp(
296296
datetime(2023, 10, 20, 11, 4, 31)
297297
)
@@ -361,7 +361,7 @@ def test_add_to_mongo_and_sync_to_elasticsearch_indexlot(self, config: Config):
361361

362362
importer.add_to_mongo(name)
363363

364-
database = importer.get_splitgill_database(importer.get_view(name))
364+
database = importer.get_database(importer.get_view(name))
365365
assert database.get_committed_version() == to_timestamp(
366366
datetime(2023, 10, 20, 11, 4, 31)
367367
)
@@ -437,7 +437,7 @@ def test_add_to_mongo_and_sync_to_elasticsearch_specimen(self, config: Config):
437437

438438
importer.add_to_mongo(name)
439439

440-
database = importer.get_splitgill_database(importer.get_view(name))
440+
database = importer.get_database(importer.get_view(name))
441441

442442
assert database.get_committed_version() == to_timestamp(
443443
datetime(2023, 10, 20, 11, 4, 31)
@@ -492,7 +492,7 @@ def test_add_to_mongo_and_sync_to_elasticsearch_mss(self, config: Config):
492492

493493
importer.add_to_mongo(name)
494494

495-
database = importer.get_splitgill_database(importer.get_view(name))
495+
database = importer.get_database(importer.get_view(name))
496496

497497
assert database.get_committed_version() == to_timestamp(
498498
datetime(2023, 10, 20, 11, 4, 31)
@@ -560,7 +560,7 @@ def test_add_to_mongo_and_sync_to_elasticsearch_preparation(self, config: Config
560560

561561
importer.add_to_mongo(name)
562562

563-
database = importer.get_splitgill_database(importer.get_view(name))
563+
database = importer.get_database(importer.get_view(name))
564564
assert database.get_committed_version() == to_timestamp(
565565
datetime(2023, 10, 20, 11, 4, 31)
566566
)

0 commit comments

Comments
 (0)