Source code for planetary_coverage.rois.categories
"""ROIs categories module."""
from .abstract import AbstractCollection, AbstractItem
[docs]class Category(AbstractItem):
"""ROI category.
Parameters
----------
key:
Identification key.
name: str, optional
Category name.
**kwargs: str, optional
Region description/Science objective/Observation requirement/Color.
"""
[docs]class SubCategory(AbstractItem):
"""ROI sub-category.
Parameters
----------
key:
Identification key.
name: str, optional
SubCategory name.
category: planetary_coverage.rois.categories.Category
Main category.
**kwargs: str, optional
Region description/Science objective/Observation requirement/Color.
Raises
------
AttributeError:
If the :attr:`category` attribute is missing.
"""
def __init__(self, key, name=None, category=None, **kwargs):
if category is None or not isinstance(category, Category):
raise AttributeError(f'Invalid category: `{category}`')
super().__init__(key, name=name, **kwargs)
self.category = category
[docs]class CategoriesCollection(AbstractCollection):
"""Categories collection."""
ITEM = Category
[docs]class SubCategoriesCollection(AbstractCollection):
"""Sub-categories collection."""
ITEM = SubCategory