Skip to content

Commit d359979

Browse files
authored
Merge branch 'feat-run-name-service' into feat-post-process-all
2 parents 7829020 + 9d08561 commit d359979

File tree

5 files changed

+36
-24
lines changed

5 files changed

+36
-24
lines changed

cg/models/cg_config.py

Lines changed: 25 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,7 @@
22
from pathlib import Path
33
from typing import Any
44

5-
from pydantic import BaseModel, EmailStr, Field, ConfigDict
5+
from pydantic import BaseModel, ConfigDict, EmailStr, Field
66
from typing_extensions import Literal
77

88
from cg.apps.coverage import ChanjoAPI
@@ -47,21 +47,14 @@
4747
from cg.services.run_devices.pacbio.housekeeper_service.pacbio_houskeeper_service import (
4848
PacBioHousekeeperService,
4949
)
50-
from cg.services.run_devices.pacbio.metrics_parser.metrics_parser import (
51-
PacBioMetricsParser,
52-
)
53-
from cg.services.run_devices.pacbio.post_processing_service import (
54-
PacBioPostProcessingService,
55-
)
50+
from cg.services.run_devices.pacbio.metrics_parser.metrics_parser import PacBioMetricsParser
51+
from cg.services.run_devices.pacbio.post_processing_service import PacBioPostProcessingService
5652
from cg.services.run_devices.pacbio.run_data_generator.pacbio_run_data_generator import (
5753
PacBioRunDataGenerator,
5854
)
59-
from cg.services.run_devices.pacbio.run_file_manager.run_file_manager import (
60-
PacBioRunFileManager,
61-
)
62-
from cg.services.run_devices.pacbio.run_validator.pacbio_run_validator import (
63-
PacBioRunValidator,
64-
)
55+
from cg.services.run_devices.pacbio.run_file_manager.run_file_manager import PacBioRunFileManager
56+
from cg.services.run_devices.pacbio.run_validator.pacbio_run_validator import PacBioRunValidator
57+
from cg.services.run_devices.run_names.pacbio import PacbioRunDirectoryNamesService
6558
from cg.services.sequencing_qc_service.sequencing_qc_service import SequencingQCService
6659
from cg.services.slurm_service.slurm_cli_service import SlurmCLIService
6760
from cg.services.slurm_service.slurm_service import SlurmService
@@ -360,6 +353,13 @@ class RunInstruments(BaseModel):
360353
illumina: IlluminaConfig
361354

362355

356+
class RunDirectoryNamesServices(BaseModel):
357+
pacbio: PacbioRunDirectoryNamesService
358+
359+
class Config:
360+
arbitrary_types_allowed = True
361+
362+
363363
class PostProcessingServices(BaseModel):
364364
pacbio: PacBioPostProcessingService
365365

@@ -427,6 +427,7 @@ class CGConfig(BaseModel):
427427
pdc_service_: PdcService | None = None
428428
post_processing_services_: PostProcessingServices | None = None
429429
pigz: CommonAppConfig | None = None
430+
run_directory_names_services_: RunDirectoryNamesServices | None = None
430431
sample_sheet_api_: IlluminaSampleSheetService | None = None
431432
scout: CommonAppConfig = None
432433
scout_api_: ScoutAPI = None
@@ -633,6 +634,17 @@ def pdc_service(self) -> PdcService:
633634
self.pdc_service_ = service
634635
return service
635636

637+
@property
638+
def run_directory_names_services(self) -> RunDirectoryNamesServices:
639+
services = self.__dict__.get("run_directory_names_services_")
640+
if services is None:
641+
LOG.debug("Instantiating run directory names services")
642+
services = RunDirectoryNamesServices(
643+
pacbio=PacbioRunDirectoryNamesService(self.run_instruments.pacbio.data_dir)
644+
)
645+
self.run_directory_names_services_ = services
646+
return services
647+
636648
@property
637649
def sample_sheet_api(self) -> IlluminaSampleSheetService:
638650
sample_sheet_api = self.__dict__.get("sample_sheet_api_")

cg/services/run_devices/run_names/pacbio.py

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,9 +1,9 @@
11
from pathlib import Path
22

3-
from cg.services.run_devices.run_names.service import RunNamesService
3+
from cg.services.run_devices.run_names.service import RunDirectoryNamesService
44

55

6-
class PacbioRunNamesService(RunNamesService):
6+
class PacbioRunDirectoryNamesService(RunDirectoryNamesService):
77

88
def get_run_names(self) -> list[str]:
99
"""

cg/services/run_devices/run_names/service.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
from abc import ABC, abstractmethod
22

33

4-
class RunNamesService(ABC):
4+
class RunDirectoryNamesService(ABC):
55

66
def __init__(self, run_directory: str):
77
self.run_directory = run_directory

tests/fixture_plugins/pacbio_fixtures/service_fixtures.py

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -22,7 +22,7 @@
2222
)
2323
from cg.services.run_devices.pacbio.run_file_manager.run_file_manager import PacBioRunFileManager
2424
from cg.services.run_devices.pacbio.run_validator.pacbio_run_validator import PacBioRunValidator
25-
from cg.services.run_devices.run_names.pacbio import PacbioRunNamesService
25+
from cg.services.run_devices.run_names.pacbio import PacbioRunDirectoryNamesService
2626
from cg.store.store import Store
2727

2828
# Mocked services
@@ -51,8 +51,8 @@ def pac_bio_run_file_manager() -> PacBioRunFileManager:
5151

5252

5353
@pytest.fixture
54-
def pacbio_run_names_service(pac_bio_runs_dir: Path) -> PacbioRunNamesService:
55-
return PacbioRunNamesService(run_directory=pac_bio_runs_dir.as_posix())
54+
def pacbio_run_names_service(pac_bio_runs_dir: Path) -> PacbioRunDirectoryNamesService:
55+
return PacbioRunDirectoryNamesService(run_directory=pac_bio_runs_dir.as_posix())
5656

5757

5858
@pytest.fixture

tests/services/run_names/test_pacbio_run_names_service.py

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -1,10 +1,10 @@
11
from pathlib import Path
22

3-
from cg.services.run_devices.run_names.pacbio import PacbioRunNamesService
3+
from cg.services.run_devices.run_names.pacbio import PacbioRunDirectoryNamesService
44

55

66
def test_pacbio_get_run_names(
7-
pacbio_run_names_service: PacbioRunNamesService, pacbio_run_names: set
7+
pacbio_run_names_service: PacbioRunDirectoryNamesService, pacbio_run_names: set
88
):
99
"""Test that getting PacBio run names works."""
1010
# GIVEN a PacBio run names service
@@ -18,7 +18,7 @@ def test_pacbio_get_run_names(
1818

1919
def test_pacbio_get_run_names_empty(tmp_path: Path):
2020
# GIVEN a run directory with no run folders and a PacBio run names service
21-
pacbio_run_names_service: PacbioRunNamesService = PacbioRunNamesService(
21+
pacbio_run_names_service: PacbioRunDirectoryNamesService = PacbioRunDirectoryNamesService(
2222
run_directory=tmp_path.as_posix()
2323
)
2424

@@ -35,7 +35,7 @@ def test_pacbio_get_run_names_with_files_return_emty(tmp_path: Path):
3535
run_dir.mkdir()
3636
Path(run_dir, "file1").touch()
3737
Path(run_dir, "file2").touch()
38-
pacbio_run_names_service: PacbioRunNamesService = PacbioRunNamesService(
38+
pacbio_run_names_service: PacbioRunDirectoryNamesService = PacbioRunDirectoryNamesService(
3939
run_directory=run_dir.as_posix()
4040
)
4141

@@ -52,7 +52,7 @@ def test_pacbio_get_run_names_with_subfolders_return_empty(tmp_path: Path):
5252
run_dir.mkdir()
5353
subfolder = Path(run_dir, "subfolder")
5454
subfolder.mkdir()
55-
pacbio_run_names_service: PacbioRunNamesService = PacbioRunNamesService(
55+
pacbio_run_names_service: PacbioRunDirectoryNamesService = PacbioRunDirectoryNamesService(
5656
run_directory=run_dir.as_posix()
5757
)
5858

0 commit comments

Comments
 (0)