Source code for hipscat.catalog.association_catalog.association_catalog_info

from __future__ import annotations

from dataclasses import dataclass

from hipscat.catalog.catalog_type import CatalogType
from hipscat.catalog.dataset.base_catalog_info import BaseCatalogInfo


@dataclass
[docs] class AssociationCatalogInfo(BaseCatalogInfo): """Catalog Info for a HiPSCat Association Catalog"""
[docs] primary_catalog: str | None = None
"""Catalog name for the primary (left) side of association"""
[docs] primary_column: str | None = None
"""Column name in the primary (left) side of join"""
[docs] primary_column_association: str | None = None
"""Column name in the association table that matches the primary (left) side of join"""
[docs] join_catalog: str | None = None
"""Catalog name for the joining (right) side of association"""
[docs] join_column: str | None = None
"""Column name in the joining (right) side of join"""
[docs] join_column_association: str | None = None
"""Column name in the association table that matches the joining (right) side of join"""
[docs] contains_leaf_files: bool = False
"""Whether or not the association catalog contains leaf parquet files"""
[docs] required_fields = BaseCatalogInfo.required_fields + [ "primary_catalog", "primary_column", "join_catalog", "join_column", "contains_leaf_files", ]
[docs] DEFAULT_TYPE = CatalogType.ASSOCIATION
[docs] REQUIRED_TYPE = CatalogType.ASSOCIATION