Skip to content

type_bridge.crud.lookup

lookup

Unified lookup parsing utilities.

This module provides parsing for Django-style lookup filters (e.g. age__gt=30). Used by TypeDBManager and TypeDBQuery for filter expressions.

build_lookup_expression

build_lookup_expression(attr_type, lookup, value)

Build an Expression for the given lookup operator.

Delegates to Attribute type methods for type-specific logic.

Parameters:

Name Type Description Default
attr_type type[Attribute]

The attribute type class

required
lookup str

Lookup operator (exact, gt, gte, lt, lte, in, isnull, contains, etc.)

required
value Any

The filter value

required

Returns:

Type Description
Expression

Expression object

Raises:

Type Description
ValueError

If unsupported lookup or type mismatch

Source code in type_bridge/crud/lookup.py
def build_lookup_expression(
    attr_type: type[Attribute],
    lookup: str,
    value: Any,
) -> Expression:
    """Build an Expression for the given lookup operator.

    Delegates to Attribute type methods for type-specific logic.

    Args:
        attr_type: The attribute type class
        lookup: Lookup operator (exact, gt, gte, lt, lte, in, isnull, contains, etc.)
        value: The filter value

    Returns:
        Expression object

    Raises:
        ValueError: If unsupported lookup or type mismatch
    """
    # Fully delegated to the Attribute class to avoid coupling here
    return attr_type.build_lookup(lookup, value)