magic-filter

1.0.12 · active · verified Sat Apr 11

magic-filter is a lightweight Python library designed to simplify conditional logic, particularly useful in event-driven programming like Telegram bots (e.g., aiogram). It provides a fluent, declarative syntax for building complex filtering expressions using the `F` object, allowing developers to write more readable and concise conditions. It is currently at version 1.0.12 and sees active, though not strictly regular, development with several minor releases annually.

Warnings

Install

Imports

Quickstart

This quickstart demonstrates how to define and apply simple and complex filters using the `F` object. It shows attribute access, method calls, logical operators (`&`, `|`, `~`), and how to use `magic-filter` with dictionaries and lists.

from magic_filter import F

data = {"text": "Hello World", "user": {"id": 123, "is_bot": False}}

# Define filters using the F object
is_admin = F.user.id == 123
starts_with_H = F.text.startswith("H")

# Apply a single filter
print(f"Is admin: {is_admin(data)}")

# Combine filters with logical operators
complex_filter = is_admin & starts_with_H & ~F.user.is_bot
print(f"Complex filter result: {complex_filter(data)}")

# Using with lists
numbers = [1, 5, 10, 3, 7]
gt_5 = F > 5
filtered_numbers = [num for num in numbers if gt_5(num)]
print(f"Numbers greater than 5: {filtered_numbers}")

view raw JSON →