Source code for mac_maker.utilities.precheck
"""Extractor for a Profile's Precheck data specified in a Job Spec file."""
from pathlib import Path
from typing import TypedDict
from .. import config
from .mixins.text_file import TextFileReader
from .spec import TypeSpecFileData
[docs]class TypePrecheckFileData(TypedDict):
"""Typed representation of a Precheck's complete contents."""
notes: str
env: str
[docs]class PrecheckExtractor(TextFileReader):
"""Extractor for a Profile's Precheck data specified in a Job Spec file."""
[docs] def get_precheck_data(
self,
spec_file_data: TypeSpecFileData,
) -> TypePrecheckFileData:
"""Read the a Profile's Precheck data from a Job Spec file, and return it.
:param spec_file_data: A loaded Job Spec file, and it's location.
:returns: The complete Precheck contents.
"""
workspace_root = Path(
spec_file_data['spec_file_content']['workspace_root_path']
)
return TypePrecheckFileData(
notes=self.read_text_file(workspace_root / config.PRECHECK['notes']),
env=self.read_text_file(workspace_root / config.PRECHECK['env']),
)