Common Schemas¶
The following schemas are used throughout multiple packages.
- class BaseFilterRuleSchema(*, only: Optional[Union[Sequence[str], Set[str]]] = None, exclude: Union[Sequence[str], Set[str]] = (), many: bool = False, context: Optional[Dict] = None, load_only: Union[Sequence[str], Set[str]] = (), dump_only: Union[Sequence[str], Set[str]] = (), partial: Union[bool, Sequence[str], Set[str]] = False, unknown: Optional[str] = None)[source]¶
The basic filter rule validator and processor.
Because in many cases we will be using the filter definitions passed from the filters API endpoints, we need a common way to process and validate that the filters that are being passed are indeed valid filters before converting them into the appropriate format for the specified endpoint. This base schema lacks the output formatting necessary for use within the endpoints themselves and instead serves as starting point for subclassing.
- filters¶
The filter ruleset (to be loaded by load_filters)
- Type
dict
- filter_check¶
The flag determining if we should be checking against the filter ruleset. There are cases where we simply want to pass the data through into the desired format, and not validate the content aside from basic formatting.
- Type
bool
- name¶
The name of the filter.
- Type
str
- oper¶
The filter operator.
- Type
str
- value¶
The filter value.
- Type
str
Examples
Performing a validation with a given filter definition ruleset:
>>> schema = BaseFilterRuleSchema() >>> schema.load_filters(filterset) >>> schema.load(('port.port', 'eq', '137'))
Performing a validation without a ruleset:
>>> schema = BaseFilterRuleSchema() >>> schema.load(('port.port', 'eq', '137'))
Performing a validation against multiple filters at the same time:
>>> schema = BaseFilterRuleSchema() >>> schema.load_filters(filterset) >>> s.load(( ... ('port.port', 'eq', '137'), ... ('port.port', 'eq', '443')), ... many=True ... )