Магический фильтр
Примечание
В aliceio есть небольшая надстройка над магическим фильтром.
Если импортировать его из magic-filter, то метод .as_() не будет доступен (о нём в главе про DI).
MagicFilter можно вызвать как функцию, он поддерживает некоторые действия и запоминает цепочку атрибутов и действий, которые следует проверить.
Это означает, что вы можете связать методы получения атрибутов в цепочку, описать простые проверки данных, а затем вызвать полученный объект, передав один объект в качестве аргумента.
Например, можно создать цепочку атрибутов F.foo.bar.baz, затем добавить действие F.foo.bar.baz == 'spam', а затем вызвать полученный объект (F.foo.bar.baz == 'spam').resolve(obj)
Возможные действия
Магический фильтр поддерживает некоторые логические операции над атрбитуами объекта.
Существует ли
Входит ли в коллекцию
Содержит ли
Regexp
Свои функции
Принимает любой вызываемый объект. Объект будет вызван когда фильтр проверяет результат.
Инверсия
Любая доступная операция может быть инвертирована с помощью оператора ~
Комбинация
Все операции могут быть скомбинированы с помощью &и |
Строковые методы
Могут быть использованы только с строковыми атрибутами
Использование в aliceio
aliceio.utils.magic_filter.MagicFilter
Bases: MagicFilter
as_(name: str) -> _MagicT
aliceio.utils.magic_filter.AsFilterResultOperation
Bases: BaseOperation