dbbase.column_types.WriteOnlyColumn.op

WriteOnlyColumn.op(opstring, precedence=0, is_comparison=False, return_type=None)

Produce a generic operator function.

e.g.:

somecolumn.op("*")(5)

produces:

somecolumn * 5

This function can also be used to make bitwise operators explicit. For example:

somecolumn.op('&')(0xff)

is a bitwise AND of the value in somecolumn.

Parameters
  • operator – a string which will be output as the infix operator between this element and the expression passed to the generated function.

  • precedence – precedence to apply to the operator, when parenthesizing expressions. A lower number will cause the expression to be parenthesized when applied against another operator with higher precedence. The default value of 0 is lower than all operators except for the comma (,) and AS operators. A value of 100 will be higher or equal to all operators, and -100 will be lower than or equal to all operators.

  • is_comparison

    if True, the operator will be considered as a “comparison” operator, that is which evaluates to a boolean true/false value, like ==, >, etc. This flag should be set so that ORM relationships can establish that the operator is a comparison operator when used in a custom join condition.

    New in version 0.9.2: - added the :paramref:`.Operators.op.is_comparison` flag.

  • return_type

    a TypeEngine class or object that will force the return type of an expression produced by this operator to be of that type. By default, operators that specify :paramref:`.Operators.op.is_comparison` will resolve to Boolean, and those that do not will be of the same type as the left-hand operand.

    New in version 1.2.0b3: - added the :paramref:`.Operators.op.return_type` argument.

See also

types_operators

relationship_custom_operator