djblets.conditions.operators¶
Base support and standard operators for condition choices.
-
class
BaseConditionOperator
(choice)[source]¶ Bases:
object
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
.
-
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
-
__init__
(choice)[source]¶ Initialize the operator.
Parameters: choice (djblets.conditions.choices.BaseConditionChoice) – The choice owning the instance of this operator.
-
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 aBaseConditionValueField
subclass or a function returning an instance.If it’s a function, it must accept a
**kwargs
, for future expansion.
-
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: Raises: TypeError
– Either the lookup or condition value or types was not compatible with the expression.
-
-
class
IsOneOfOperator
(choice)[source]¶ Bases:
djblets.conditions.operators.BaseConditionOperator
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: Returns: True
if the lookup value is present in the list of possible values.Return type: Raises: TypeError
– Either the lookup or condition value was not compatible with the expression.
-
-
class
IsNotOneOfOperator
(choice)[source]¶ Bases:
djblets.conditions.operators.BaseConditionOperator
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: Returns: True
if the lookup value is not present in the list of possible values.Return type: Raises: TypeError
– Either the lookup or condition value was not compatible with the expression.
-
-
class
AnyOperator
(choice)[source]¶ Bases:
djblets.conditions.operators.BaseConditionOperator
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
.
-
class
UnsetOperator
(choice)[source]¶ Bases:
djblets.conditions.operators.BaseConditionOperator
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 simplenot
check against the value, but filters out values that evalute toFalse
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
.
-
class
IsOperator
(choice)[source]¶ Bases:
djblets.conditions.operators.BaseConditionOperator
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
.
-
class
IsNotOperator
(choice)[source]¶ Bases:
djblets.conditions.operators.BaseConditionOperator
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
.
-
class
ContainsOperator
(choice)[source]¶ Bases:
djblets.conditions.operators.BaseConditionOperator
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: Returns: True
if the lookup value contains the condition value.Return type: Raises: TypeError
– Either the lookup or condition value was not compatible with the expression.
-
-
class
DoesNotContainOperator
(choice)[source]¶ Bases:
djblets.conditions.operators.BaseConditionOperator
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: Returns: True
if the lookup value does not contain the condition value.Return type: Raises: TypeError
– Either the lookup or condition value was not compatible with the expression.
-
-
class
ContainsAnyOperator
(choice)[source]¶ Bases:
djblets.conditions.operators.BaseConditionOperator
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: Returns: True
if the lookup value contains any of the given condition values.Return type: Raises: TypeError
– Either the lookup or condition value was not compatible with the expression.
-
-
class
DoesNotContainAnyOperator
(choice)[source]¶ Bases:
djblets.conditions.operators.BaseConditionOperator
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: Returns: True
if the lookup value does not contain any of the condition value.Return type: Raises: TypeError
– Either the lookup or condition value was not compatible with the expression.
-
-
class
StartsWithOperator
(choice)[source]¶ Bases:
djblets.conditions.operators.BaseConditionOperator
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: Raises: TypeError
– Either the lookup or condition value was not a string (or string-like object).
-
-
class
EndsWithOperator
(choice)[source]¶ Bases:
djblets.conditions.operators.BaseConditionOperator
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: Raises: TypeError
– Either the lookup or condition value was not a string (or string-like object).
-
-
class
GreaterThanOperator
(choice)[source]¶ Bases:
djblets.conditions.operators.BaseConditionOperator
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: ...
-
class
LessThanOperator
(choice)[source]¶ Bases:
djblets.conditions.operators.BaseConditionOperator
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: ...
-
class
MatchesRegexOperator
(choice)[source]¶ Bases:
djblets.conditions.operators.BaseConditionOperator
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:
-
-
class
DoesNotMatchRegexOperator
(choice)[source]¶ Bases:
djblets.conditions.operators.BaseConditionOperator
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:
-
-
class
ConditionOperators
(operators=[], *args, **kwargs)[source]¶ Bases:
djblets.registries.registry.OrderedRegistry
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:
- Created dynamically, taking a list of
BaseConditionOperator
subclasses as arguments. - Subclassed, with
operator_classes
set to a list ofBaseConditionOperator
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
-
default_errors
= {u'already_registered': _(u'Could not register condition operator %(item)s: This operator is already registered or its ID conflicts with another operator.'), u'attribute_registered': _(u'Could not register condition operator %(item)s: Another operator %(duplicate)s) is already registered with the same ID.'), u'invalid_attribute': _(u'"%(attr_name)s" is not a registered lookup attribute.'), u'load_entry_point': _(u'Could not load entry point %(entry_point)s: %(error)s.'), u'missing_attribute': _(u'Could not register %(item)s: it does not have a "%(attr_name)s" attribute.'), u'not_registered': _(u'No operator was found matching "%(attr_value)s".'), u'unregister': _(u'Could not unregister condition operator %(item)s: This condition was not yet registered.')}[source]¶
-
__init__
(operators=[], *args, **kwargs)[source]¶ Initialize the list of operators.
Parameters: operators (list of type, optional) – A list of BaseConditionOperator
subclasses. If this is provided, any value set foroperator_classes
will be ignored.
-
get_operator
(operator_id, choice)[source]¶ Return an operator instance with the given ID.
Parameters: - operator_id (unicode) – The ID of the operator to retrieve.
- choice (djblets.conditions.choices.BaseConditionChoice) – The choice that will own this operator instance.
Returns: The operator instance matching the ID.
Return type: 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
- Created dynamically, taking a list of