Source code for dimcat.steps.filters.annotations
import logging
from typing import Iterable, Optional
from dimcat.data.resources.base import IX
from dimcat.data.resources.dc import levelvalue_
from dimcat.steps.filters.base import FilterSchema, _FilterMixin
from dimcat.steps.groupers import HasCadenceAnnotationsGrouper, HasHarmonyLabelsGrouper
module_logger = logging.getLogger(__name__)
[docs]class HasCadenceAnnotationsFilter(_FilterMixin, HasCadenceAnnotationsGrouper):
[docs] class Schema(HasCadenceAnnotationsGrouper.Schema, FilterSchema):
pass
[docs]class HasHarmonyLabelsFilter(_FilterMixin, HasHarmonyLabelsGrouper):
[docs] class Schema(HasHarmonyLabelsGrouper.Schema, FilterSchema):
pass
def __init__(
self,
keep_values: levelvalue_ | Iterable[levelvalue_] = (True,),
drop_values: levelvalue_ | Iterable[levelvalue_] = None,
drop_level: Optional[bool] = None,
level_name: str = "has_harmony_labels",
grouped_units: IX = None,
**kwargs,
):
super().__init__(
keep_values=keep_values,
drop_values=drop_values,
drop_level=drop_level,
level_name=level_name,
grouped_units=grouped_units,
**kwargs,
)