in sapp/filter.py [0:0]
def __init__(self, **kwargs: Any) -> None:
self.features: List[Dict[str, Union[str, List[str]]]] = kwargs.get(
"features", []
)
self.codes: List[int] = kwargs.get("codes", [])
self.paths: List[str] = kwargs.get("paths", [])
self.callables: MatchesIsAlias = kwargs.get("callables", [])
self.statuses: List[str] = kwargs.get("statuses", [])
self.source_names: MatchesIsAlias = kwargs.get("source_names", [])
self.source_kinds: MatchesIsAlias = kwargs.get("source_kinds", [])
self.sink_names: MatchesIsAlias = kwargs.get("sink_names", [])
self.sink_kinds: MatchesIsAlias = kwargs.get("sink_kinds", [])
self.traceLengthFromSources: Optional[List[int]] = kwargs.get(
"traceLengthFromSources", None
)
self.traceLengthToSinks: Optional[List[int]] = kwargs.get(
"traceLengthToSinks", None
)
self.is_new_issue: Optional[bool] = kwargs.get("is_new_issue", None)
missing_filtering_condition: bool = all(
getattr(self, key) in (None, []) for key in self._json_filtering_keys()
)
if missing_filtering_condition:
filtering_conditions: List[str] = self._json_filtering_keys()
raise FilterValidationException(
f"Error: The filter must have at least one of the following keys: f{filtering_conditions}"
)