Jump to >

This documentation covers Djblets 2.x. You can see the latest Djblets documentation or all other versions.

djblets.conditions.operators

Base support and standard operators for condition choices.

class BaseConditionOperator(choice)[source]

Base class for an operator for a condition choice.

An operator forms an expression along with a parent BaseConditionChoice and an optional value. This expression can be used by the condition to determine if a caller-provided value satisfies the condition.

Choices will usually have more than one operator registered. Depending on the operator, there may or may not be a field for a value.

choice

The choice owning the instance of this operation.

Type

djblets.conditions.choices.BaseConditionChoice

operator_id = None[source]

The ID of the operator.

This must be unique within a BaseConditionChoice.

name = None[source]

The displayed name for the operator.

classmethod with_overrides(**attrs)[source]

Dynamically create a subclass with overridden attributes.

This makes it easy for a choice to make use of existing operators while using a custom name for display, or a custom value field, without having to create their own subclasses. It’s meant only for simple changes.

Parameters

**attrs (dict) – Attributes to override on the operator.

Returns

A new subclass with the overridden attributes.

Return type

type

property value_field[source]

The field type used to prompt and render fields.

By default, this will use the default one for the choice. The field can be disabled by setting this to None, or a different field can be used by setting it to an instance of a BaseConditionValueField subclass or a function returning an instance.

If it’s a function, it must accept a **kwargs, for future expansion.

property has_custom_value_field[source]

Whether the operator has a custom value field.

matches(match_value, stored_value, **kwargs)[source]

Return whether a value matches the operator and condition’s value.

This must be implemented by subclasses.

Parameters
  • match_value (object) – The caller’s value to check against the state for this operator.

  • condition_value (object) – The value stored as part of the condition to check against. This will only be used if the operator has a value field associated.

  • **kwargs (dict) – Extra keyword arguments, for future expansion.

Returns

True if the lookup value fulfills the condition. False if it does not.

Return type

bool

Raises

TypeError – Either the lookup or condition value or types was not compatible with the expression.

class IsOneOfOperator(choice)[source]

An operator that matches against a set of possible values.

This operator checks if the lookup value matches one of a set of possible values listed in the condition.

This is equivalent to:

if match_value in condition_value:
    ...
matches(match_value, condition_value, **kwargs)[source]

Return whether the lookup value is one of a set of values.

Parameters
  • match_value (object) – The caller’s value to check against the state for this operator.

  • condition_value (list) – A list of possible values that the lookup value must match.

  • **kwargs (dict) – Unused extra keyword arguments.

Returns

True if the lookup value is present in the list of possible values.

Return type

bool

Raises

TypeError – Either the lookup or condition value was not compatible with the expression.

class IsNotOneOfOperator(choice)[source]

An operator that matches if not one of a set of possible values.

This operator checks if the lookup value is not one of a set of possible values listed in the condition.

This is equivalent to:

if match_value not in condition_value:
    ...
matches(match_value, condition_value, **kwargs)[source]

Return whether the lookup value is not one of a set of values.

Parameters
  • match_value (object) – The caller’s value to check against the state for this operator.

  • condition_value (list) – A list of possible values that the lookup value must not match.

  • **kwargs (dict) – Unused extra keyword arguments.

Returns

True if the lookup value is not present in the list of possible values.

Return type

bool

Raises

TypeError – Either the lookup or condition value was not compatible with the expression.

class AnyOperator(choice)[source]

An operator that matches for any non-empty/zero value.

This operator checks if the lookup value provided is a non-empty value (a boolean, integer, string/list/dictionary containing a value, etc.). To determine if the value is empty, the operator checks len(value). If not 0, or if the value doesn’t support a length check, it’s assumed to have a value.

This is equivalent to:

if match_value in (0, False) or bool(match_value):
    ...

The operator does not accept a user-provided condition value.

This is the opposite of UnsetOperator.

value_field = None[source]
matches(match_value, **kwargs)[source]

Return whether the lookup value is non-empty.

Parameters
  • match_value (object) – The caller’s value to check against the state for this operator.

  • **kwargs (dict) – Unused extra keyword arguments.

Returns

True if the value is evaluated as not empty. False if it evalutes as empty.

Return type

bool

class UnsetOperator(choice)[source]

An operator that matches for an unset/empty value.

This operator checks if the lookup value provided is an empty value (such as empty string/list/dictionary or None). This performs a simple not check against the value, but filters out values that evalute to False but are not considered unset.

This is equivalent to:

if match_value not in (0, False) and not match_value:
    ...

The operator does not accept a user-provided condition value.

This is the opposite of AnyOperator.

value_field = None[source]
matches(match_value, **kwargs)[source]

Return whether the lookup value is empty.

Parameters
  • match_value (object) – The caller’s value to check against the state for this operator.

  • **kwargs (dict) – Unused extra keyword arguments.

Returns

True if the value is evaluated as empty. False if it evalutes as not empty.

Return type

bool

class IsOperator(choice)[source]

An operator that checks if one value is the same as another.

This operator checks for equality, comparing the lookup value to the stored condition value.

It’s equivalent to:

if match_value == condition_value:
    ...

This is the opposite of IsNotOperator.

matches(match_value, condition_value, **kwargs)[source]

Return whether the lookup value equals a condition value.

Parameters
  • match_value (object) – The caller’s value to check against the state for this operator.

  • condition_value (object) – The value to compare against.

  • **kwargs (dict) – Unused extra keyword arguments.

Returns

True if the lookup value equals the condition value.

Return type

bool

class IsNotOperator(choice)[source]

An operator that checks if one value is not the same as another.

This operator checks for inequality, comparing the lookup value to the stored condition value.

It’s equivalent to:

if match_value != condition_value:
    ...

This is the opposite of IsOperator.

matches(match_value, condition_value, **kwargs)[source]

Return whether the lookup value is not equal to a condition value.

Parameters
  • match_value (object) – The caller’s value to check against the state for this operator.

  • condition_value (object) – The value to compare against.

  • **kwargs (dict) – Unused extra keyword arguments.

Returns

True if the lookup value is not equal to the condition value.

Return type

bool

class ContainsOperator(choice)[source]

An operator that checks if a lookup value contains a condition value.

This operator checks if the provided lookup value contains the condition value within the value. It’s useful for checking if a string or list contains some value.

It’s equivalent to:

if condition_value in match_value:
    ...

This is the opposite of DoesNotContainOperator.

matches(match_value, condition_value, **kwargs)[source]

Return whether the lookup value contains a condition value.

Parameters
  • match_value (object) – The caller’s value to check for a condition value within.

  • condition_value (object) – The value to check within the lookup value.

  • **kwargs (dict) – Unused extra keyword arguments.

Returns

True if the lookup value contains the condition value.

Return type

bool

Raises

TypeError – Either the lookup or condition value was not compatible with the expression.

class DoesNotContainOperator(choice)[source]

An operator that checks if a lookup value does not contain a value.

This operator checks if the provided lookup value does not contain the condition value within the value. It’s useful for checking if a string or list does not contain some value.

It’s equivalent to:

if condition_value not in match_value:
    ...

This is the opposite of ContainsOperator.

matches(match_value, condition_value, **kwargs)[source]

Return whether the lookup value does not contain a condition value.

Parameters
  • match_value (object) – The caller’s value to check for a condition value within.

  • condition_value (object) – The value to check within the lookup value.

  • **kwargs (dict) – Unused extra keyword arguments.

Returns

True if the lookup value does not contain the condition value.

Return type

bool

Raises

TypeError – Either the lookup or condition value was not compatible with the expression.

class ContainsAnyOperator(choice)[source]

Checks if a lookup value contains any specified condition values.

This operator checks if the provided lookup value contains any items in a list of condition value. It’s useful for checking if a list contains anything from another list.

It’s equivalent to:

if set(condition_value) & set(match_value):
    ...

This is the opposite of DoesNotContainAnyOperator.

matches(match_value, condition_value, **kwargs)[source]

Return whether the lookup value contains any condition values.

Parameters
  • match_value (object) – The caller’s value to check for condition values within.

  • condition_value (object) – The values to check within the lookup value.

  • **kwargs (dict) – Unused extra keyword arguments.

Returns

True if the lookup value contains any of the given condition values.

Return type

bool

Raises

TypeError – Either the lookup or condition value was not compatible with the expression.

class DoesNotContainAnyOperator(choice)[source]

Checks if a lookup value doesn’t contain any of the specified values.

This operator checks if the provided lookup value does not contain any of the provided condition values. It’s useful for checking if a list does not contain any items from another list.

It’s equivalent to:

if not (set(condition_value) & set(match_value)):
    ...

This is the opposite of ContainsAnyOperator.

matches(match_value, condition_value, **kwargs)[source]

Return if the lookup value doesn’t contain any condition values.

Parameters
  • match_value (object) – The caller’s value to check for a condition value within.

  • condition_value (object) – The values to check within the lookup value.

  • **kwargs (dict) – Unused extra keyword arguments.

Returns

True if the lookup value does not contain any of the condition value.

Return type

bool

Raises

TypeError – Either the lookup or condition value was not compatible with the expression.

class StartsWithOperator(choice)[source]

An operator that checks if a string starts with another string.

This operator checks if the lookup value (assumed to be a string) starts with the condition value (also a string).

It’s equivalent to:

if match_value.startswith(condition_value):
    ...
matches(match_value, condition_value, **kwargs)[source]

Return whether the lookup value starts with the condition value.

Parameters
  • match_value (unicode) – The caller’s value to check.

  • condition_value (unicode) – The value to check at the start of the lookup value string.

  • **kwargs (dict) – Unused extra keyword arguments.

Returns

True if the lookup value starts with the condition value.

Return type

bool

Raises

TypeError – Either the lookup or condition value was not a string (or string-like object).

class EndsWithOperator(choice)[source]

An operator that checks if a string ends with another string.

This operator checks if the lookup value (assumed to be a string) ends with the condition value (also a string).

It’s equivalent to:

if match_value.endswith(condition_value):
    ...
matches(match_value, condition_value, **kwargs)[source]

Return whether the lookup value ends with the condition value.

Parameters
  • match_value (unicode) – The caller’s value to check.

  • condition_value (unicode) – The value to check at the end of the lookup value string.

  • **kwargs (dict) – Unused extra keyword arguments.

Returns

True if the lookup value ends with the condition value.

Return type

bool

Raises

TypeError – Either the lookup or condition value was not a string (or string-like object).

class GreaterThanOperator(choice)[source]

An operator that checks if a number is greater than a value.

This operator checks if the lookup value (assumed to be an integer or similar) is greater than the condition value.

It’s equivalent to:

if match_value > condition_value:
    ...
matches(match_value, condition_value, **kwargs)[source]

Return whether the lookup value is greater than the condition value.

Parameters
  • match_value (object) – The caller’s value to check.

  • condition_value (object) – The value that the lookup value must be greater than.

  • **kwargs (dict) – Unused extra keyword arguments.

Returns

True if the lookup value is greater than the condition value.

Return type

bool

class LessThanOperator(choice)[source]

An operator that checks if a number is less than a value.

This operator checks if the lookup value (assumed to be an integer or similar) is less than the condition value.

It’s equivalent to:

if match_value < condition_value:
    ...
matches(match_value, condition_value, **kwargs)[source]

Return whether the lookup value is less than the condition value.

Parameters
  • match_value (object) – The caller’s value to check.

  • condition_value (object) – The value that the lookup value must be less than.

  • **kwargs (dict) – Unused extra keyword arguments.

Returns

True if the lookup value is less than the condition value.

Return type

bool

class MatchesRegexOperator(choice)[source]

An operator that checks if a value matches against a regex.

It’s equivalent to:

if condition_value.match(match_value):
    ...
matches(match_value, condition_value, **kwargs)[source]

Return whether the lookup value matches the condition’s regex.

Parameters
  • match_value (unicode) – The caller’s value to check.

  • condition_value (re.RegexObject) – The regex value that the lookup value must match.

  • **kwargs (dict) – Unused extra keyword arguments.

Returns

True if the lookup value matches the regex in the condition.

Return type

bool

class DoesNotMatchRegexOperator(choice)[source]

An operator that checks if a value does not match against a regex.

It’s equivalent to:

if not condition_value.match(match_value):
    ...
matches(match_value, condition_value, **kwargs)[source]

Return whether the lookup value doesn’t match the condition’s regex.

Parameters
  • match_value (unicode) – The caller’s value to check.

  • condition_value (re.RegexObject) – The regex value that the lookup value must not match.

  • **kwargs (dict) – Unused extra keyword arguments.

Returns

True if the lookup value doesn’t match the regex in the condition.

Return type

bool

class ConditionOperators(operators=[], *args, **kwargs)[source]

Represents a list of operators for a condition choice.

This stores a list of operators that can be used for condition choices. It can be used in one of two ways:

  1. Created dynamically, taking a list of BaseConditionOperator subclasses as arguments.

  2. Subclassed, with operator_classes set to a list of BaseConditionOperator subclasses.

This works as a registry, allowing additional choices to be added dynamically by extensions or other code.

operator_classes = [][source]

A list of default operators.

This is only used if a list of operators is not passed to the constructor.

lookup_error_class[source]

alias of djblets.conditions.errors.ConditionOperatorNotFoundError

already_registered_error_class[source]

alias of djblets.conditions.errors.ConditionOperatorConflictError

get_operator(operator_id, choice)[source]

Return an operator instance with the given ID.

Parameters
Returns

The operator instance matching the ID.

Return type

BaseConditionOperator

Raises

djblets.conditions.errors.ConditionOperatorNotFoundError – No operator was found that matched the given ID.

get_defaults()[source]

Return the default operators for the list.

This is used internally by the parent registry classa, and is based on the list of operators provided to the constructor or the value for operator_classes.

Returns

The default list of operators.

Return type

list of type