Filtering¶
Criteria¶
Module providing the Criteria
class.
-
class
UI4.Widgets.SceneGraphView.Filtering.Criteria.
Criteria
(numberOfElements=1)¶ Bases:
object
A wrapper for a set of arbitrary indexed values which can be retrieved as a tuple of Integers, Floats or Strings.
-
__init__
(numberOfElements=1)¶ Initializes an instance of the class.
-
getAsFloat
()¶ Return type: tuple
offloat
Returns: The value(s) stored in this Criteria object as an ordered tuple of float.
-
getAsInt
()¶ Return type: tuple
ofint
Returns: The value(s) stored in this Criteria object as an ordered tuple of integers.
-
getAsObject
()¶ Return type: tuple
ofobject
Returns: The value(s) stored in this Criteria object as an ordered tuple in their original form.
-
getAsString
()¶ Return type: tuple
ofstring
Returns: The value(s) stored in this Criteria object as an ordered tuple of string.
-
setValue
(index, value)¶ Set the value at the given index.
Parameters: - index (
int
) – The numeric index which determines the position of the value set. - value (Any value capable of converting to Integer, Double or String) – The value to be set at the specified index.
- index (
-
Evaluator¶
Module providing the Evaluator
base class.
-
UI4.Widgets.SceneGraphView.Filtering.Evaluator.
GetEvaluatorCriteria
(name)¶ Return the list of criteria for the evaluator registered under the given name.
Parameters: name ( str
) – The registered name of the Evaluator.Return type: list
ofdict
Returns: Ordered list specifying the criteria accepted by the evaluator or None if the evaluator is not registered. See: Evaluator.registerCriteriaList
-
UI4.Widgets.SceneGraphView.Filtering.Evaluator.
RegisterEvaluator
(name, evaluatorClass)¶ Register the evaluator class type, evaluatorClass, against the specified name.
Parameters: - name (
str
) – Name to register the evaluator. - evaluatorClass (
Evaluator
) – The class type so instances of the evaluator can be created.
- name (
-
class
UI4.Widgets.SceneGraphView.Filtering.Evaluator.
Evaluator
¶ Bases:
object
The Evaluator class contains the method signatures that subclasses of Evaluator must implement.
-
__init__
()¶ Initializes an instance of the class.
-
clearCriteria
()¶ Clears the criteria for this evaluator.
-
evaluate
(value)¶ This method will be passed a value which you should evaluated against the criteria that have been set and return True or False.
Return type: bool
Returns: True
orFalse
depending on the input and criteria specified.
-
getCriteria
()¶ Return type: dict
ofdict
Returns: A dictionary of dictionaries describing the currently set criteria for the Evaluator.
-
getDefaultCriteria
()¶ Return type: tuple
of (str
,Criteria
)Returns: A tuple describing the criteria and it’s value that can be used where nothing has been supplied.
-
classmethod
getName
()¶ Return type: str
Returns: The name used to describe this evaluator.
-
classmethod
registerCriteriaList
()¶ This method should return an ordered list of dictionaries which describe the criteria this evaluator can accept.
The dictionary must specify the following key, value pairs:
name: C{str} prefix: C{str} suffix: C{str} type: C{ColumnDataType} default: C{object} num_elements: C{int}
e.g.:
{ "name": "Color", "prefix": "(RGB)", "suffix": None, "type": ColumnDataType.Color, "default": [255, 255, 255], "num_elements": 3 }
Users will create valid criteria based on the list you return from this function. name, prefix and suffix are human readable values that can be used to display in UIs.
Return type: list
ofdict
Returns: A list of dictionaries as specified above.
-
setCriteria
(name, criteria)¶ Sets the criteria specified by name to the instance of the Criteria object, criteria.
Parameters: See:
-
-
class
UI4.Widgets.SceneGraphView.Filtering.Evaluator.
CelEvaluator
¶ Bases:
UI4.Widgets.SceneGraphView.Filtering.Evaluator.Evaluator
This Evaluator will evntually containg CEL matching evaluation (basically handing off its criteria to a CEL matching function yet we don’t have matching functions exposed in Python yet.
-
CriteriaList
= [{'num_elements': 1, 'name': 'CEL Expression', 'default': '//', 'prefix': None, 'type': <class 'UI4.Widgets.SceneGraphView.ItemDelegates.ParameterItemDelegate.ParameterItemDelegate'>, 'suffix': None}]¶
-
__init__
()¶ Initializes an instance of the class.
-
evaluate
(value)¶
-
getDefaultCriteria
()¶
-
classmethod
getName
()¶
-
classmethod
registerCriteriaList
()¶
-
-
class
UI4.Widgets.SceneGraphView.Filtering.Evaluator.
RegexEvaluator
¶ Bases:
UI4.Widgets.SceneGraphView.Filtering.Evaluator.Evaluator
Evaluator to provide regular expression matching.
Internally this evaluator uses Python’s
re
module.-
CriteriaList
= [{'num_elements': 1, 'name': 'Regex', 'default': '.*', 'prefix': None, 'type': <class 'UI4.Widgets.SceneGraphView.ItemDelegates.ParameterItemDelegate.ParameterItemDelegate'>, 'suffix': None}]¶
-
__init__
()¶ Initializes an instance of the class.
-
evaluate
(value)¶
-
getDefaultCriteria
()¶
-
classmethod
getName
()¶
-
classmethod
registerCriteriaList
()¶
-
setCriteria
(name, criteria)¶
-
-
class
UI4.Widgets.SceneGraphView.Filtering.Evaluator.
EqualToEvaluator
¶ Bases:
UI4.Widgets.SceneGraphView.Filtering.Evaluator.Evaluator
Class provides simple Equality testing for strings and numbers
In the case of
ColumnDataType.Number
we convert the criteria and value passed to theevaluate
function to float viafloat()
.If you don’t specify either a Phrase or Number then False will be returned.
-
CriteriaList
= [{'num_elements': 1, 'name': 'Phrase', 'default': '', 'prefix': None, 'type': <class 'UI4.Widgets.SceneGraphView.ItemDelegates.ParameterItemDelegate.ParameterItemDelegate'>, 'suffix': None}, {'num_elements': 1, 'name': 'Number', 'default': 0, 'prefix': None, 'type': <class 'UI4.Widgets.SceneGraphView.ItemDelegates.NumberItemDelegate.NumberItemDelegate'>, 'suffix': None}]¶
-
__init__
()¶ Initializes an instance of the class.
-
evaluate
(value)¶
-
getDefaultCriteria
()¶
-
classmethod
getName
()¶
-
classmethod
registerCriteriaList
()¶
-
-
class
UI4.Widgets.SceneGraphView.Filtering.Evaluator.
LessThanEvaluator
¶ Bases:
UI4.Widgets.SceneGraphView.Filtering.Evaluator.Evaluator
Provides Less Than Evaluator.
-
CriteriaList
= [{'num_elements': 1, 'name': 'Number', 'default': inf, 'prefix': None, 'type': <class 'UI4.Widgets.SceneGraphView.ItemDelegates.NumberItemDelegate.NumberItemDelegate'>, 'suffix': None}]¶
-
__init__
()¶ Initializes an instance of the class.
-
evaluate
(value)¶
-
getDefaultCriteria
()¶
-
classmethod
getName
()¶
-
classmethod
registerCriteriaList
()¶
-
-
class
UI4.Widgets.SceneGraphView.Filtering.Evaluator.
GreaterThanEvaluator
¶ Bases:
UI4.Widgets.SceneGraphView.Filtering.Evaluator.Evaluator
Provides Greater Than Evaluator.
-
CriteriaList
= [{'num_elements': 1, 'name': 'Number', 'default': -inf, 'prefix': None, 'type': <class 'UI4.Widgets.SceneGraphView.ItemDelegates.NumberItemDelegate.NumberItemDelegate'>, 'suffix': None}]¶
-
__init__
()¶ Initializes an instance of the class.
-
evaluate
(value)¶
-
getDefaultCriteria
()¶
-
classmethod
getName
()¶
-
classmethod
registerCriteriaList
()¶
-
-
class
UI4.Widgets.SceneGraphView.Filtering.Evaluator.
FuzzyEqualityEvaluator
¶ Bases:
UI4.Widgets.SceneGraphView.Filtering.Evaluator.Evaluator
Class provides floating-point comparison within specified tolerance levels.
You can specify:
- Both:
- PositiveTolerance Maximum allowable value from the value specified in the positive axis
- NegativeTolerance Maximum allowable value in the negative axis
- True == Value - NegativeTolerance < Test < Value + PositiveTolerance
- Or:
- Tolerance Maximum allowable in positive and negative axis.
- True == Value - Tolerance < Test < Value + Tolerance
If neither are specified then Tolerance will be used with its default value.
This class is an example of more advanced use of the filtering system and is not currently made available.
-
CriteriaList
= [{'num_elements': 1, 'name': 'Number', 'default': 0.0, 'prefix': None, 'type': <class 'UI4.Widgets.SceneGraphView.ItemDelegates.NumberItemDelegate.NumberItemDelegate'>, 'suffix': None}, {'num_elements': 1, 'name': 'PositiveTolerance', 'default': 0.1, 'prefix': None, 'type': <class 'UI4.Widgets.SceneGraphView.ItemDelegates.NumberItemDelegate.NumberItemDelegate'>, 'suffix': None}, {'num_elements': 1, 'name': 'NegativeTolerance', 'default': 0.1, 'prefix': None, 'type': <class 'UI4.Widgets.SceneGraphView.ItemDelegates.NumberItemDelegate.NumberItemDelegate'>, 'suffix': None}, {'num_elements': 1, 'name': 'Tolerance', 'default': 0.1, 'prefix': None, 'type': <class 'UI4.Widgets.SceneGraphView.ItemDelegates.NumberItemDelegate.NumberItemDelegate'>, 'suffix': None}]¶
-
__init__
()¶ Initializes an instance of the class.
-
evaluate
(value)¶
-
getDefaultCriteria
()¶
-
classmethod
getName
()¶
-
classmethod
registerCriteriaList
()¶
Rule¶
Module providing the Rule
class.
-
class
UI4.Widgets.SceneGraphView.Filtering.Rule.
Rule
¶ Bases:
object
Class draws together the
Target
andEvaluator
classes and provides a methodmatch
which actually causes the invokation of the Evaluator’s evaluate() function for the resolved scene graph location.-
__init__
()¶
-
clearCriteria
()¶ Clears the criteria for this rule.
-
flushLocationMatchCache
()¶ Empty the cache of match results for this rule.
-
getComment
()¶ Return type: str
orNone
Returns: This rule’s comment or None
if one isn’t set.
-
getCriteria
()¶ Return type: dict
ofdict
Returns: A dictionary of criteria that have been set for this evaluator.
-
getDefaultCriteria
()¶ Return type: tuple
of (str
,Criteria
)Returns: A tuple describing the criteria and it’s value that can be used where nothing has been supplied.
-
getEvaluatorName
()¶ Return type: str
Returns: The name of the evaluator being used by this rule.
-
getShowChildren
()¶
-
isEnabled
()¶ Return type: bool
Returns: True
if this rule is enabled, otherwiseFalse
.
-
isInverted
()¶ Return type: bool
Returns: True
if this rule is inverted, otherwiseFalse
.
-
match
(handle, topLevelHandle)¶ Using the Target, Evaluator and Criteria specified using
setTarget
,setEvaluator
,setCriteria
. Test if the value, as resolved by theTarget
object, atsceneGraphLocation
matches the specifed Criteria for the given Evaluator.Return type: bool
Parameters: Returns: True
if theRule
matches the scene graph location with the given handle under the scene graph location with the given top-level handle, otherwiseFalse
.
-
setComment
(comment)¶ Sets the comment of this rule. The comment doesn’t affect the filtering itself, but is useful for documenting and identifying rules.
Parameters: comment ( str
orNone
) – The new comment of this rule.
-
setCriteria
(name, criteria)¶ Sets the
Criteria
required by theCriteria
you have specified.Parameters: - name (
str
) – The name used to refer to these particular criteria. - criteria (
Criteria
) – The criteria object as described by the criteria required by the Evaluator you are using.
- name (
-
setEnabled
(enabled)¶ Sets the enabled state of this rule. If not enabled, the rule will always match positively.
Parameters: enabled ( bool
) – The new enabled state of this rule.
-
setEvaluator
(evaluator)¶ Sets the
Evaluator
object to be used by this rule.Parameters: evaluator ( Evaluator
) – The evaulator that will be used to evaluator the rule.
-
setInverted
(inverted)¶ Sets the inverted state of this rule. If inverted, the rule will invert the result of its matching procedure.
Parameters: inverted ( bool
) – The new inverted state of this rule.
-
setShowChildren
(showChildren)¶
-
RuleConfigDialog¶
Module provides a simple Rule configuration user interface.
-
class
UI4.Widgets.SceneGraphView.Filtering.RuleConfigDialog.
RuleConfigDialog
(bridge, parent=None)¶ Bases:
PyQt5.QtWidgets.QDialog
Class to provide a simple filter rule configuration modeless dialog box.
-
COLUMN_ID_COMMENT
= 8¶
-
COLUMN_ID_CRITERIA
= 3¶
-
COLUMN_ID_ENABLE
= 5¶
-
COLUMN_ID_EVALUATOR
= 2¶
-
COLUMN_ID_INVERT
= 6¶
-
COLUMN_ID_NAME
= 0¶
-
COLUMN_ID_SHOWCHILDREN
= 7¶
-
COLUMN_ID_TARGET
= 1¶
-
COLUMN_ID_VALUE
= 4¶
-
__init__
(bridge, parent=None)¶
-
on_availableRulesMenu_triggered
(action)¶
-
on_deleteSelectedButton_clicked
()¶
-
on_invertMatchCheckBox_stateChanged
(state)¶
-
on_matchPolicyCombo_currentIndexChanged
(index)¶
-
showEvent
(event)¶
-
RuleManager¶
Module providing the RuleManager
class.
-
class
UI4.Widgets.SceneGraphView.Filtering.RuleManager.
RuleManager
(bridge, evaluateRuleCallback)¶ Bases:
object
Class to encapsulate the storage of filtering rules and rule matching logic.
-
MatchAllPolicy
= 2¶
-
MatchAnyPolicy
= 1¶
-
__init__
(bridge, evaluateRuleCallback)¶
-
addRule
(ruleName)¶ Adds a new rule to the current rule set using the specified name which can be used later to configure the rule.
The rule name must not be already used otherwise this function will raise an exception.
Parameters: ruleName ( str
) – Name of the rule by which you can reference it later.Raises: e – RuleManagerException
if ruleName already exists in the current rule set.
-
clearRuleCriteria
(ruleName, triggerEvaluation=True)¶ Clears the criteria that have been set for the given rule.
Parameters: - ruleName (
str
) – The rule to be cleared. - triggerEvaluation (
bool
) – Whether clearing the criteria should trigger re-evaluation of the rule set. This can be useful for managing user interaction.
- ruleName (
-
getCurrentRules
()¶ Return a
dict
ofdict
containing the list of current rules and their values.Return type: dict
ofdict
Returns: Dictionary of dictionaries containing the current rule set.
-
getRuleByName
(ruleName)¶ Parameters: ruleName ( str
) – Name of the rule to return:Return type: Rule
orNone
Returns: The rule object corresponding to the rule name or None if it does not exist.
-
getRuleMatchInversion
()¶ Return type: bool
Returns: A boolean value indicating whether the result of rule evaluation will be inverted.
-
match
(handle, topLevelHandle)¶ Using the current rule matching policy and rules that have been configured test if the current scene graph location matches the filter criteria.
Return type: bool
Parameters: - handle (
SceneGraphHandle
) – Handle representing the scene graph location to evaluate. - topLevelHandle (
SceneGraphHandle
) – Handle representing the top-level scene graph location that contains the scene graph location to evaluate.
Returns: True
if the rule set matches the scene graph location with the given handle under the scene graph location with the given top-level handle, otherwiseFalse
.- handle (
-
removeRule
(ruleName)¶ Removes the rule specified by ruleName from the current rule set.
Parameters: ruleName ( str
) – The ruleName to remove from the rule set. If if doesn’t exist this function will have no effect.
-
renameRule
(oldName, newName)¶ Renames the given rule from the
oldName
to thenewName
. If thisRuleManager
instance already contains aRule
named the same asnewName
, name mangling will occur to avoid a conflict (_1, _2, etc will be appended to the end until a unique name is found). If the givenoldName
does not name a validRule
, aValueError
is raised.The result value is the finalised new rule name, after any potential name changes due to conflicts have taken place.
Return type: str
Parameters: - oldName (
str
) – The name of the rule to be renamed. - newName (
str
) – The new name to rename the rule to.
Returns: The finalised new rule name, after any potential name changes due to conflicts have taken place.
- oldName (
-
setRuleComment
(ruleName, comment)¶ Sets the comment of the given rule.
Parameters: - ruleName (
str
) – The rule whose inversion state we wish to set. - comment (
str
orNone
) – The new comment of the given rule.
- ruleName (
-
setRuleCriteria
(ruleName, criteriaName, criteria)¶ Sets the criteria of the specified evaluator for a given rule.
This function will have no effect if ruleName refers to a non-existent Rule.
Parameters: - ruleName (
str
) – The rule name assigned to the Rule. - criteriaName (
str
) – The criteria name required by the evaluator. - criteria (
Criteria
) – The criteria object.
- ruleName (
-
setRuleEnabled
(ruleName, isEnabled, triggerEvaluation=True)¶ Sets the enabled state of the given rule.
Parameters: - ruleName (
str
) – The rule whose enabled state we wish to set. - isEnabled (
bool
) – The new enabled state of the given rule. - triggerEvaluation (
bool
) – Whether setting this state should trigger re-evaluation of the rule set. This can be useful for managing user interaction.
- ruleName (
-
setRuleEvaluator
(ruleName, evaluator, useDefaultCriteria=False)¶ Sets the evaluator of the specified rule.
This function will have no effect if ruleName refers to a non-existent Rule.
Parameters: - ruleName (
str
) – The rule name assigned to the Rule. - evaluator (
Evaluator
) – The evaluator object to set.
- ruleName (
-
setRuleInverted
(ruleName, isInverted, triggerEvaluation=True)¶ Sets the inversion state of the given rule.
Parameters: - ruleName (
str
) – The rule whose inversion state we wish to set. - isInverted (
bool
) – The new inversion state of the given rule. - triggerEvaluation (
bool
) – Whether setting this state should trigger re-evaluation of the rule set. This can be useful for managing user interaction.
- ruleName (
-
setRuleMatchInversion
(invertMatch)¶ Sets whether the final result of all rule evaluation should be inverted.
Parameters: invertMatch ( bool
) – A boolean value indicating whether the result of rule evaluation should be inverted.
-
setRuleMatchPolicy
(policy)¶ Sets the rule matching policy the
RuleManager
should apply when testing scene graph locations against the current set of configured rules.Parameters: policy ( int
) – A valid rule matching policy
-
setRuleShowChildren
(ruleName, showChildren, triggerEvaluation=True)¶
-
setRuleTarget
(ruleName, column)¶ Sets the target of the specified rule.
This function will have no effect if ruleName refers to a non-existent Rule.
Parameters: - ruleName (
str
) – The rule name assigned to the Rule. - column (
SceneGraphColumn
) – The column which will be targeted for the rule.
- ruleName (
-
Target¶
Module providing the Target
class.
-
class
UI4.Widgets.SceneGraphView.Filtering.Target.
Target
(sceneGraphColumn, bridge, mode=0)¶ Bases:
object
-
__init__
(sceneGraphColumn, bridge, mode=0)¶ Creates a new instance of the
Target
class.Parameters: - sceneGraphColumn (
SceneGraphColumn
) – The column object. - bridge (
Bridge
) – A valid implementation of theBridge
class. - mode (
int
) – The mode in which Target should behave, currently only AttributeMode is enabled.
- sceneGraphColumn (
-
getSceneGraphColumn
()¶ Return type: SceneGraphColumn
Returns: The column against which to resolve each scene graph location.
-
resolve
(handle, topLevelHandle)¶ Resolves the scene graph location specified to a particular value based on the target column and its current configuration.
Return type: object
Parameters: - handle (
SceneGraphHandle
) – Handle representing the scene graph location to resolve to a value, in combination with the column with which thisTarget
is associated. - topLevelHandle (
SceneGraphHandle
) – Handle representing the top-level scene graph location that contains the scene graph location to evaluate.
Returns: The value at the column and location pair.
Raises: NotImplementedError – If
Target
mode is not AttributeMode.- handle (
-