Source code for rail.pipelines.utils.name_factory

"""
Utility code to help define standard paths for various data products
"""

import os
import enum


[docs]class DataType(enum.Enum): catalog = 0 model = 1 config = 2 pdf = 3 metric = 4
[docs]class CatalogType(enum.Enum): reference = 0 created = 1 degraded = 2
[docs]class ModelType(enum.Enum): creator = 0 degrarder = 1 estimator = 2 summarizer = 3 evaluator = 4
[docs]class PdfType(enum.Enum): pz = 0 nz = 1
[docs]class NameFactory: project_directory_template = os.path.join( "{root}", "{project}", "{study}", ) data_directory_template = os.path.join( "{data_type}", "{data_subtype}", ) full_directory_template = os.path.join( project_directory_template, data_directory_template )
[docs] def get_project_dir(self, root, project, study): return self.project_directory_template.format(root=root, project=project, study=study)
[docs] def get_data_dir(self, data_type, data_subtype): return self.data_directory_template.format(data_type=data_type.name, data_subtype=data_subtype.name)