refactor: simplify code using match

Signed-off-by: Akhil Narang <me@akhilnarang.dev>
This commit is contained in:
Akhil Narang 2025-12-30 16:54:59 +05:30
parent 038bd44d08
commit 92900d366c
No known key found for this signature in database
GPG key ID: 9DCC61E211BF645F

View file

@ -483,20 +483,17 @@ class Engine:
self.query = self.query.where(combined)
def apply_list_filters(self, filter: list, collect: list | None = None):
if len(filter) == 2:
field, value = filter
self._apply_filter(field, value, collect=collect)
elif len(filter) == 3:
field, operator, value = filter
self._apply_filter(field, value, operator, collect=collect)
elif len(filter) == 4:
doctype, field, operator, value = filter
self._apply_filter(field, value, operator, doctype, collect=collect)
elif len(filter) == 5:
doctype, field, operator, value, _ = filter
self._apply_filter(field, value, operator, doctype, collect=collect)
else:
raise ValueError(f"Unknown filter format: {filter}")
match filter:
case [field, value]:
self._apply_filter(field, value, collect=collect)
case [field, operator, value]:
self._apply_filter(field, value, operator, collect=collect)
case [doctype, field, operator, value]:
self._apply_filter(field, value, operator, doctype, collect=collect)
case [doctype, field, operator, value, _]:
self._apply_filter(field, value, operator, doctype, collect=collect)
case _:
raise ValueError(f"Unknown filter format: {filter}")
def apply_dict_filters(self, filters: dict[str, FilterValue | list], collect: list | None = None):
for field, value in filters.items():