PredicateFunction

class lsst.daf.relation.PredicateFunction(name: str, args: tuple[ColumnExpression, ...], supporting_engine_types: tuple[type[Engine], ...] | None)

Bases: lsst.daf.relation.Predicate

A concrete boolean expression that represents calling an named function with column expression arguments.

Attributes Summary

columns_required Columns required by this expression (Set [ ColumnTag ]).

Methods Summary

as_trivial() Attempt to simplify this expression into a constant boolean.
is_supported_by(engine) Test whether the given engine is capable of evaluating this expression.
literal(value) Construct a boolean expression that is a constant True or False.
logical_and() Return a boolean expression that is the logical AND of the given ones.
logical_not() Return a boolean expression that is the logical NOT of this one.
logical_or() Return a boolean expression that is the logical OR of the given ones.
reference(tag) Construct an expression that refers to a boolean column in a relation.

Attributes Documentation

columns_required

Columns required by this expression (Set [ ColumnTag ]).

This includes columns required by expressions nested within this one.

Methods Documentation

as_trivial() → None

Attempt to simplify this expression into a constant boolean.

Returns:
trivial : bool or None

If True or False, the expression always evaluates to exactly that constant value. If None, the expression is nontrivial (or at least could not easily be simplified into a trivial expression).

is_supported_by(engine: Engine) → bool

Test whether the given engine is capable of evaluating this expression.

Parameters:
engine : Engine

Engine to test.

Returns:
supported : bool

Whether the engine supports this expression and all expressions nested within it.

classmethod literal(value: bool) → lsst.daf.relation._columns._predicate.PredicateLiteral

Construct a boolean expression that is a constant True or False.

Parameters:
value : bool

Value for the expression.

Returns:
literal : PredicateLiteral

A boolean column expression set to the given value.

logical_and() → lsst.daf.relation._columns._predicate.Predicate

Return a boolean expression that is the logical AND of the given ones.

Parameters:
*operands : Predicate

Existing boolean expressions to AND together.

Returns:
logical_and : Predicate

Logical AND expression. If no operands are provided, a PredicateLiteral for True is returned. If one operand is provided, it is returned directly.

logical_not() → lsst.daf.relation._columns._predicate.LogicalNot

Return a boolean expression that is the logical NOT of this one.

Returns:
logical_not : Predicate

Logical NOT expression.

logical_or() → lsst.daf.relation._columns._predicate.Predicate

Return a boolean expression that is the logical OR of the given ones.

Parameters:
*operands : Predicate

Existing boolean expressions to OR together.

Returns:
logical_and : Predicate

Logical OR expression. If no operands are provided, a PredicateLiteral for False is returned. If one operand is provided, it is returned directly.

classmethod reference(tag: lsst.daf.relation._columns._tag.ColumnTag) → lsst.daf.relation._columns._predicate.PredicateReference

Construct an expression that refers to a boolean column in a relation.

Parameters:
tag : ColumnTag

Identifier for the column to reference.

Returns:
reference : PredicateReference

A column expression that refers the given relation column.