def __init__()

in pathology/transformation_pipeline/ingestion_lib/dicom_gen/wsi_to_dicom/wsi_pyramid_gen_config.py [0:0]


  def __init__(self):
    config_path = (
        ingest_flags.INGESTION_PYRAMID_LAYER_GENERATION_CONFIG_PATH_FLG.value.strip()
    )
    self._downsample_config = None
    if not config_path:
      cloud_logging_client.info((
          'Ingestion pyramid generation config is undefined. '
          'Defaulting to full pyramid generation.'
      ))
      return
    _, ext = os.path.splitext(config_path)
    ext = ext.lower()
    if ext == '.yaml':
      self._downsample_config = _read_yaml(config_path)
    elif ext == '.json':
      self._downsample_config = _read_json(config_path)
    else:
      msg = (
          'Unknown pyramid generation config file type. File does not end in'
          ' ".json" or ".yaml"'
      )
      cloud_logging_client.error(
          msg,
          {
              'ingest_pyramid_layer_configuration': config_path,
              'file_extension_found': ext,
          },
      )
      raise _IngestPyramidConfigFileTypeError(msg)

    cloud_logging_client.info(
        'Loaded ingestion pyramid generation config.',
        {
            'ingest_pyramid_layer_configuration': config_path,
            'config_definition': str(self._downsample_config),
        },
    )

    if not _is_config_valid(self._downsample_config):
      msg = 'Ingestion pyamid config does not define dict of int lists.'
      cloud_logging_client.error(
          msg,
          {
              'ingest_pyramid_layer_configuration': config_path,
              'config_definition': str(self._downsample_config),
          },
      )
      raise _IngestPyramidConfigValidationError(msg)