Working Sets

class WorkingSet.WorkingSet

Bases: object

A class encapsulating a map of Scene Graph locations to states, to which elements can be added and removed, triggering callbacks if specified.

class State

Bases: object

An ‘enumeration’ of possible location states for use in a WorkingSet.

Empty = 1
Excluded = 8
ExcludedWithChildren = 16
Included = 2
IncludedWithChildren = 4
__dict__ = dict_proxy({'__module__': 'PyUtilModule.WorkingSet', 'coerceToBitmask': <classmethod object at 0x7f3490464948>, 'fromStateString': <classmethod object at 0x7f34904648a0>, 'IncludedWithChildren': 4, 'Empty': 1, 'getStatesFromBitmask': <classmethod object at 0x7f34904648d8>, 'getValidStatesBitmask': <classmethod object at 0x7f3490464830>, '__dict__': <attribute '__dict__' of 'State' objects>, '__doc__': "\n An 'enumeration' of possible location states for use in a\n L{WorkingSet}.\n ", 'Excluded': 8, 'getBitmaskFromStates': <classmethod object at 0x7f3490464910>, 'Included': 2, 'getStateString': <classmethod object at 0x7f3490464868>, '__weakref__': <attribute '__weakref__' of 'State' objects>, 'validate': <classmethod object at 0x7f34904647c0>, 'getValidStates': <classmethod object at 0x7f34904647f8>, 'ExcludedWithChildren': 16})
__module__ = 'PyUtilModule.WorkingSet'
__weakref__

list of weak references to the object (if defined)

classmethod coerceToBitmask(bitmaskOrStates)
Return type:int
Parameters:bitmaskOrStates (int or list of {int} or None) – A numerical value representing some state values bitwise combined into a single value, or a list of state values, or None to indicate all possible states.
Returns:A bitmask representing the states represented by the given bitmask or states.
Note:A bitmaskOrStates value of None, 0 or an empty list will return a bitmask representing all possible states.
classmethod fromStateString(stateString)

Turns the given state string representation into the actual state value.

Return type:int or None
Parameters:stateString (str) – The string representation of the state.
Returns:The state value, or None if the given state string doesn’t map to a known state.
classmethod getBitmaskFromStates(states)

Turns the given list of state values into a numerical value representing a combination of those states.

Return type:int
Parameters:states (list of int) – A list of the states values for which a bitmask should be returned.
Returns:A numerical value representing the given state values bitwise combined into a single value.
classmethod getStateString(state)

Turns the given state into a string that represents it. e.g. WorkingSet.State.Included will return “Included”.

Return type:str
Parameters:state (int) – The state to convert to a string.
Returns:The string representation of the given state.
classmethod getStatesFromBitmask(bitmask)

Turns the given numerical value representing a combination of states into a list of state values.

Return type:list of int
Parameters:bitmask (int) – A numerical value representing some state values bitwise combined into a single value.
Returns:A list of the states which match the given bitmask.
classmethod getValidStates()
Return type:list of int
Returns:A list of all valid states.
classmethod getValidStatesBitmask()
Return type:int
Returns:A bitmask representing all valid states.
classmethod validate(state)

Validates the given state against the list of all valid states. If the given state is found to not be valid, a ValueError is raised.

Parameters:state (int) – The state to validate.
Raises:ValueError – When the given state is not valid.
WorkingSet.__dict__ = dict_proxy({'getLocationsByState': <function getLocationsByState at 0x7f349046f5f0>, '__module__': 'PyUtilModule.WorkingSet', 'getMinimumAllowedStateForLocation': <function getMinimumAllowedStateForLocation at 0x7f349046f488>, 'containsLocation': <function containsLocation at 0x7f349046f500>, 'matchesChildrenByInheritance': <function matchesChildrenByInheritance at 0x7f349046f938>, 'includeLocationsWithChildren': <function includeLocationsWithChildren at 0x7f349046aed8>, 'State': <class 'PyUtilModule.WorkingSet.State'>, 'getLocationsAndStates': <function getLocationsAndStates at 0x7f349046f6e0>, 'getLocationState': <function getLocationState at 0x7f349046f578>, '__dict__': <attribute '__dict__' of 'WorkingSet' objects>, 'setLocationAllowedStates': <function setLocationAllowedStates at 0x7f349046f398>, '__weakref__': <attribute '__weakref__' of 'WorkingSet' objects>, '__init__': <function __init__ at 0x7f349046a9b0>, 'removeAllCallbacks': <function removeAllCallbacks at 0x7f349046fed8>, 'isStateAllowed': <function isStateAllowed at 0x7f349046f2a8>, 'iterateLocationAncestors': <function iterateLocationAncestors at 0x7f349046f758>, 'removeLocationStateChangedCallback': <function removeLocationStateChangedCallback at 0x7f349046fc80>, 'clearLocations': <function clearLocations at 0x7f349046f0c8>, 'matchesLocation': <function matchesLocation at 0x7f349046f848>, '_WorkingSet__checkCallback': <function __checkCallback at 0x7f3490470140>, 'getAllowedStates': <function getAllowedStates at 0x7f349046f1b8>, '_callLocationStateChangedCallbacks': <function _callLocationStateChangedCallbacks at 0x7f349046ff50>, '__doc__': '\n A class encapsulating a map of Scene Graph locations to states, to which\n elements can be added and removed, triggering callbacks if specified.\n ', 'getLocationAllowedStates': <function getLocationAllowedStates at 0x7f349046f320>, 'asGroupAttribute': <function asGroupAttribute at 0x7f349046faa0>, 'addWorkingSetClearedCallback': <function addWorkingSetClearedCallback at 0x7f349046fcf8>, 'matchesAnyChildren': <function matchesAnyChildren at 0x7f349046f8c0>, '_callWorkingSetClearedCallbacks': <function _callWorkingSetClearedCallbacks at 0x7f3490470050>, 'getNumLocations': <function getNumLocations at 0x7f349046f7d0>, 'getRootLocations': <function getRootLocations at 0x7f349046fa28>, '_callAllowedStatesChangedCallbacks': <function _callAllowedStatesChangedCallbacks at 0x7f34904700c8>, 'setLocationStates': <function setLocationStates at 0x7f349046ade8>, 'excludeLocationsWithChildren': <function excludeLocationsWithChildren at 0x7f349046f050>, 'excludeLocations': <function excludeLocations at 0x7f349046af50>, 'addAllowedStatesChangedCallback': <function addAllowedStatesChangedCallback at 0x7f349046fde8>, 'fromGroupAttribute': <classmethod object at 0x7f3490464980>, 'getLocations': <function getLocations at 0x7f349046f668>, 'clear': <function clear at 0x7f349046f140>, 'addLocationStateChangedCallback': <function addLocationStateChangedCallback at 0x7f349046fc08>, 'includeLocations': <function includeLocations at 0x7f349046ae60>, 'isIncludedLeafLocation': <function isIncludedLeafLocation at 0x7f349046f9b0>, '__repr__': <function __repr__ at 0x7f349046fb90>, 'setAllowedStates': <function setAllowedStates at 0x7f349046f230>, 'removeWorkingSetClearedCallback': <function removeWorkingSetClearedCallback at 0x7f349046fd70>, 'removeAllowedStatesChangedCallback': <function removeAllowedStatesChangedCallback at 0x7f349046fe60>, 'isStateAllowedForLocation': <function isStateAllowedForLocation at 0x7f349046f410>})
WorkingSet.__init__()

Initializes an instance of the class.

WorkingSet.__module__ = 'PyUtilModule.WorkingSet'
WorkingSet.__repr__()
Return type:str
Returns:A string representation of the Working Set.
WorkingSet.__weakref__

list of weak references to the object (if defined)

WorkingSet.addAllowedStatesChangedCallback(callback)

Adds the given callback function to a list of functions that will be executed when the Working Set’s allowed states change.

The callback is expected to have the following signature:

function(allowedStates, workingSet, sender)

  • allowedStates is a list of int representing the new allowed states for the Working Set
  • workingSet is the WorkingSet that is causing the callback
  • sender is the object that caused the request to change the Working Set, or None if one wasn’t provided.
Parameters:callback (callable) – The callback to be called when the allowed states for the Working Set are changed.
Raises:ValueError – If the given callback doesn’t have the expected signature.
WorkingSet.addLocationStateChangedCallback(callback)

Adds the given callback function to a list of functions that will be executed when a location in the Working Set’s state changes.

The callback is expected to have the following signature:

function(locationStateChanges, workingSet, sender)

  • locationStateChanges is a list of tuples of the form (locationPath, oldState, newState).
  • When the location path is first added to the Working Set, the oldState will be None
  • When the location path is removed from the Working Set, the newState will be None
  • workingSet is the WorkingSet that is causing the callback
  • sender is the object that caused the request to change the Working Set, or None if one wasn’t provided.
Parameters:callback (callable) – The callback to set to be called when locations are added, removed, or have their states changed in the Working Set.
Raises:ValueError – If the given callback doesn’t have the expected signature.
WorkingSet.addWorkingSetClearedCallback(callback)

Adds the given callback function to a list of functions that will be executed when the Working Set is cleared via a call to clear().

The callback is expected to have the following signature:

function(workingSet)

  • workingSet is the WorkingSet that is causing the callback
Parameters:callback (callable) – The callback to set to be called when the Working Set is cleared.
Raises:ValueError – If the given callback doesn’t have the expected signature.
WorkingSet.asGroupAttribute()
Return type:FnAttribute.GroupAttribute
Returns:A group attribute containing child attributes representing the locations which have been added to the maps for this Working Set.
WorkingSet.clear(clearAllowedStates=False, sender=None, useCallbacks=True)

Removes all locations that are currently stored in the Working Set.

Return type:

bool

Parameters:
  • sender (object or None) – The object that initiated the change.
  • clearAllowedStates (bool) – A flag indicating whether locations with a subset of allowed states should have this restriction cleared.
  • useCallbacks (bool) – Whether or not to raise callbacks if any changes are made.
Returns:

True if any changes were made to the Working Set, otherwise False.

WorkingSet.clearLocations(locationPathOrPaths, clearAllowedStates=False, clearGiven=True, clearChildren=False, sender=None, useCallbacks=True)

Removes the given location path or location paths from the Working Set. Optionally also removes all states for child location paths of the given location paths.

Return type:

bool

Parameters:
  • locationPathOrPaths (str or list of str) – Either a single location path string, or a list of location paths that should all be removed.
  • clearAllowedStates (bool) – Flag to control whether to clear the allowed states for the given location paths, and their children if clearChildren is True.
  • clearGiven (bool) – Flag to control whether to remove the state for the given location paths. If clearChildren, clearGiven and clearAllowedStates are all False, this function will have no effect.
  • clearChildren (bool) – Flag to control whether to clear all location paths beneath the given location paths.
  • sender (object or None) – The object that initiated the change.
  • useCallbacks (bool) – Whether or not to raise callbacks if any changes are made.
Returns:

True if any changes were made to the Working Set, otherwise False.

WorkingSet.containsLocation(locationPath)
Return type:bool
Parameters:locationPath (str) – The path of the location whose membership of this Working Set will be tested.
Returns:True if the given location path has an entry in the Working Set, otherwise False.
WorkingSet.excludeLocations(locationPathOrPaths, allowedStates=None, sender=None)

Convenience function that calls setLocationStates() with WorkingSet.State.Excluded as the given locations’ state.

Return type:

bool

Parameters:
  • locationPathOrPaths (str or list of str) – Either a single location path string, or a list of location paths that should all be set to Excluded.
  • allowedStates (int or list of int or None) – A list of states which the given locations should be allowed to have, or a single numerical value created from the bit-wise OR of such states, or None if the locations should be able to have any state.
  • sender (object or None) – The object that initiated the change.
Returns:

True if any changes were made to the Working Set, otherwise False.

WorkingSet.excludeLocationsWithChildren(locationPathOrPaths, allowedStates=None, sender=None)

Convenience function that calls setLocationStates() with WorkingSet.State.ExcludedWithChildren as the given locations’ state.

Return type:

bool

Parameters:
  • locationPathOrPaths (str or list of str) – Either a single location path string, or a list of location paths that should all be set to ExcludedWithChildren.
  • allowedStates (int or list of int or None) – A list of states which the given locations should be allowed to have, or a single numerical value created from the bit-wise OR of such states, or None if the locations should be able to have any state.
  • sender (object or None) – The object that initiated the change.
Returns:

True if any changes were made to the Working Set, otherwise False.

classmethod WorkingSet.fromGroupAttribute(groupAttribute, sender=None, useCallbacks=True, workingSetInstance=None)

Populates a Working Set from a GroupAttribute that was previously created via asGroupAttribute().

In addition to being able to be called as a class method, this is also available as an instance method, in the form myWorkingSet.fromGroupAttribute(myGroupAttribute). When called as a class method, a new WorkingSet will be constructed and populated from the GroupAttribute. When called as an instance method, the WorkingSet on which it was called will be cleared and updated using the GroupAttribute’s contents.

Return type:

WorkingSet

Parameters:
  • groupAttribute (FnAttribute.GroupAttribute) – The GroupAttribute whose children should be used to populate the Working Set. This GroupAttribute is expected to have been created through a call to asGroupAttribute().
  • sender (object or None) – The object that initiated the change.
  • useCallbacks (bool) – Whether or not to raise callbacks if any changes are made.
  • workingSetInstance (WorkingSet or None) – An optional WorkingSet to (clear and) update using the GroupAttribute. If this is None, a new WorkingSet will be created and updated.
Returns:

The Working Set that was updated with the GroupAttribute.

Raises:

TypeError – If the given groupAttribute argument is not a valid FnAttribute.GroupAttribute.

WorkingSet.getAllowedStates()
Return type:list of int
Returns:A list of numerical values representing the states which this Working Set can contain.
See:setAllowedStates
WorkingSet.getLocationAllowedStates(locationPath)
Return type:list of int
Parameters:locationPath (str) – The path of the location for which the allowed states should be returned.
Returns:A list of numerical values representing the states which the given location is allowed to have.
WorkingSet.getLocationState(locationPath)
Return type:int
Parameters:locationPath (str) – The location path to query the state for.
Returns:The state associated with the given location path. This will be WorkingSet.State.Empty if the location path is not found.
WorkingSet.getLocations(rootPath=None)
Return type:list of str
Parameters:rootPath (str or None) – The path beneath which (excluding itself) locations should be returned. If None, all locations in the tree are returned.
Returns:A list of all locations that are currently known by the Working Set, regardless of their assigned state.
WorkingSet.getLocationsAndStates(rootPath=None)
Return type:list of tuple of (str, int)
Parameters:rootPath (str or None) – The path beneath which (excluding itself) locations should be returned. If None, all locations in the tree are returned.
Returns:A list of all locations and their states that are currently known by the Working Set.
WorkingSet.getLocationsByState(state, rootPath=None)
Return type:

list of str

Parameters:
  • state (int) – The state to get the locations for.
  • rootPath (str or None) – The path beneath which (excluding itself) matching locations should be returned. If None, all matching locations in the tree are returned.
Returns:

A list of all locations that are currently set to the given state.

WorkingSet.getMinimumAllowedStateForLocation(locationPath)
Return type:int or None
Parameters:locationPath (str) – The path of the location whose minimum allowed state should be returned.
Returns:The state with the smallest value which is allowed for the given location
WorkingSet.getNumLocations(rootPath=None)
Return type:int
Parameters:rootPath (str or None) – The path beneath which (excluding itself) the number of locations should be returned. If None, the total number of locations in the tree is returned.
Returns:The number of locations known by this Working Set.
WorkingSet.getRootLocations()
Return type:list of str
Returns:A list of all “root” (top most) locations stored in the Working Set.
WorkingSet.includeLocations(locationPathOrPaths, allowedStates=None, sender=None)

Convenience function that calls setLocationStates() with WorkingSet.State.Included as the given locations’ state.

Return type:

bool

Parameters:
  • locationPathOrPaths (str or list of str) – Either a single location path string, or a list of location paths that should all be set to Included.
  • allowedStates (int or list of int or None) – A list of states which the given locations should be allowed to have, or a single numerical value created from the bit-wise OR of such states, or None if the locations should be able to have any state.
  • sender (object or None) – The object that initiated the change.
Returns:

True if any changes were made to the Working Set, otherwise False.

WorkingSet.includeLocationsWithChildren(locationPathOrPaths, allowedStates=None, sender=None)

Convenience function that calls setLocationStates() with WorkingSet.State.IncludedWithChildren as the given locations’ state.

Return type:

bool

Parameters:
  • locationPathOrPaths (str or list of str) – Either a single location path string, or a list of location paths that should all be set to IncludedWithChildren.
  • allowedStates (int or list of int or None) – A list of states which the given locations should be allowed to have, or a single numerical value created from the bit-wise OR of such states, or None if the locations should be able to have any state.
  • sender (object or None) – The object that initiated the change.
Returns:

True if any changes were made to the Working Set, otherwise False.

WorkingSet.isIncludedLeafLocation(locationPath)

Determines whether the given location path is a leaf location with respect to the Working Set, i.e. if it is “Included”, does not include children by inheritance, and does not have any explicitly included children.

Return type:bool
Parameters:locationPath (str) – The location path to check.
Returns:True if the given location path is an included leaf location, otherwise False.
WorkingSet.isStateAllowed(state)
Return type:bool
Parameters:state (int) – The state to test whether the Working Set can contain it.
Returns:True if the Working Set can contain the given state, otherwise False.
See:setAllowedStates
WorkingSet.isStateAllowedForLocation(locationPath, state)
Return type:

bool

Parameters:
  • locationPath (str) – The path of the location to test whether it can have the given state.
  • state (int) – The state to test whether the given location is allowed to have.
Returns:

True if the given location path can have the given state, otherwise False.

WorkingSet.iterateLocationAncestors(locationPath, includeLocation=False)

An iterator over tuples of absolute location paths and their assigned states, in decreasing depth order, for ancestors of the given location path whose state is not “Empty”.

Return type:

generator

Parameters:
  • locationPath (str) – The location path to test.
  • includeLocation (bool) – If True, iterate from locationPath, rather than its parent.
Returns:

A generator object that will walk over ancestor (location, state) tuples.

WorkingSet.matchesAnyChildren(locationPath, checkInheritance=False)

Determines whether any descendants of the given location path are included in the Working Set. By default, only checks whether descendants of the given location path are explicitly included.

Return type:

bool

Parameters:
  • locationPath (str) – The location path to search beneath for included locations.
  • checkInheritance (bool) – Flag indicating whether to also consider inclusion by inheritance from the given location path and its ancestors.
Returns:

True if any locations beneath the given location path match the Working Set, otherwise False.

WorkingSet.matchesChildrenByInheritance(locationPath)

Determines whether children of the given location path would be included by inheritance (in the absence of local state).

Return type:bool
Parameters:locationPath (str) – The location path to check.
Returns:True if children of the given location path would be included by inheritance.
WorkingSet.matchesLocation(locationPath)

Determines whether the given location path is logically included, i.e. is explicitly included, or is included by inheritance and is not explicitly excluded.

Return type:bool
Parameters:locationPath (str) – The location path to test.
Returns:True if the location matches, otherwise False.
WorkingSet.removeAllCallbacks()

Removes all currently registered callbacks from the Working Set.

WorkingSet.removeAllowedStatesChangedCallback(callback)

Removes a callback for when the Working Set’s allowed states are changed.

Parameters:callback (callable) – The callback function to remove.
WorkingSet.removeLocationStateChangedCallback(callback)

Removes a callback for when a location’s state is changed.

Parameters:callback (callable) – The callback function to remove.
WorkingSet.removeWorkingSetClearedCallback(callback)

Removes a callback for when a location’s state is changed.

Parameters:callback (callable) – The callback function to remove.
WorkingSet.setAllowedStates(allowedStates, sender=None)

Sets the allowed states of the Working Set. Note that a state of “Empty” is always implicitly allowed for a Working Set, as this represents a location not being present in the map.

Return type:

bool

Parameters:
  • allowedStates (int or list of int or None) – A list of states which the Working Set should be be able to contain, or a single numerical value created from the bit-wise OR of such states, or None if the Working Set should be able to contain any state.
  • sender (object or None) – The object that initiated the change.
Returns:

True if the allowed states of the Working Set changed, otherwise False if no changes were made to the Working Set.

Note:

Any locations currently in the map which have a state which is not in the given allowed states will be removed from the the Working Set.

WorkingSet.setLocationAllowedStates(locationPathOrPaths, allowedStates, sender=None)

Sets the allowed states of the given locations.

Return type:

bool

Parameters:
  • locationPathOrPaths (str or list of str) – Either a single location path string, or a list of location paths whose allowed states should be set.
  • allowedStates (int or list of int or None) – A list of states which the given locations should be allowed to have, or a single numerical value created from the bit-wise OR of such states, or None if the locations should be able to have any state.
  • sender (object or None) – The object that initiated the change.
Returns:

True if any of the locations had their allowed states changed, otherwise False no changes were made to the Working Set.

WorkingSet.setLocationStates(locationPathOrPaths, state, allowedStates=None, sender=None, useCallbacks=True)

Update the given location or list of locations to all have the given state value.

Return type:

bool

Parameters:
  • locationPathOrPaths (str or list of str) – Either a single location path string, or a list of location paths that should all be set to the given state.
  • state (int) – The state to set all the given location paths to.
  • allowedStates (int or list of int or None) – A list of states which the given locations should be allowed to have, or a single numerical value created from the bit-wise OR of such states, or None if the locations should be able to have any state.
  • sender (object or None) – The object that initiated the change.
  • useCallbacks (bool) – Whether or not to raise callbacks if any changes are made.
Returns:

True if any changes were made to the Working Set, otherwise False.

Raises:

ValueError – If the given state is not allowed for this Working Set.

Managing Working Sets

class WorkingSetManager.WorkingSetManager

Bases: object

Class implementing a global storage for WorkingSet instances. When a module wishes to access a Working Set they can call getOrCreateWorkingSet with the name of the WorkingSet instance they are interested in.

LiveRenderUpdatesWorkingSetName = 'liveRenderUpdates'
RenderWorkingSetName = 'render'
ViewerVisibilityWorkingSetName = 'viewerVisibility'
__dict__ = dict_proxy({'_WorkingSetManager__onSceneLoadOrNewScene': <classmethod object at 0x7f3490464bb0>, '__module__': 'PyUtilModule.WorkingSetManager', 'getPersistentWorkingSetNames': <staticmethod object at 0x7f3490464ad0>, 'clearOnSceneChangeCallback': <classmethod object at 0x7f3490464b40>, '_WorkingSetManager__WorkingSets': {'liveRenderUpdates': <WorkingSet {'/root': Included}>, 'render': <WorkingSet {}>}, '_WorkingSetManager__ClearOnSceneChange': set(['render', 'viewerVisibility', 'liveRenderUpdates']), 'deleteWorkingSet': <staticmethod object at 0x7f34904649f0>, 'getWorkingSetNames': <staticmethod object at 0x7f3490464a28>, 'ViewerVisibilityWorkingSetName': 'viewerVisibility', '__dict__': <attribute '__dict__' of 'WorkingSetManager' objects>, 'setWorkingSetPersistent': <staticmethod object at 0x7f3490464a98>, '__weakref__': <attribute '__weakref__' of 'WorkingSetManager' objects>, 'clearWorkingSetOnSceneChange': <classmethod object at 0x7f34904649b8>, '_WorkingSetManager__OnSceneChangeCallbackRegistered': True, 'setOpArgs': <staticmethod object at 0x7f3490464b78>, 'isWorkingSetPersistent': <staticmethod object at 0x7f3490464a60>, '_WorkingSetManager__PersistentWorkingSetNames': set(['render', 'viewerVisibility', 'liveRenderUpdates']), 'RenderWorkingSetName': 'render', 'LiveRenderUpdatesWorkingSetName': 'liveRenderUpdates', '_SystemWorkingSetNames': ('viewerVisibility', 'render', 'liveRenderUpdates'), 'getOrCreateWorkingSet': <staticmethod object at 0x7f34904646e0>, '_WorkingSetManager__UserOnSceneChangeCallback': None, 'setOnSceneChangeCallback': <classmethod object at 0x7f3490464b08>, '__doc__': '\n Class implementing a global storage for C{WorkingSet} instances. When a\n module wishes to access a Working Set they can call\n L{getOrCreateWorkingSet()} with the name of the C{WorkingSet} instance they\n are interested in.\n '})
__module__ = 'PyUtilModule.WorkingSetManager'
__weakref__

list of weak references to the object (if defined)

classmethod clearOnSceneChangeCallback()

Clears any previously set callback for onSceneLoad or onNewScene events. This restores the default Working Set manager behaviour.

classmethod clearWorkingSetOnSceneChange(workingSetName)

Adds the given named Working Set to the list of Working Sets to be cleared when an onNewScene or onSceneLoad callback occurs (when a new scene is opened, or when an existing scene is opened).

Parameters:workingSetName (str) – The name of the Working Set to add to the list of those to be cleared.
static deleteWorkingSet(name)
Parameters:name (str) – The name of the Working Set to delete.
static getOrCreateWorkingSet(name, sender=None)
Return type:WorkingSet
Parameters:name (str) – The name of the Working Set to get or create.
Returns:The existing Working Set, or a newly created Working Set, if none existed with the specified name.
static getPersistentWorkingSetNames()
Return type:list of str
Returns:The names of Working Sets stored in the Working Set manager which cannot be deleted.
static getWorkingSetNames()
Return type:list of str
Returns:The names of Working Sets stored in the Working Set manager.
static isWorkingSetPersistent(name)
Return type:bool
Parameters:name (str) – The name of the Working Set to return whether it can be deleted.
Returns:True if the Working Set with the given name can be deleted, otherwise False
classmethod setOnSceneChangeCallback(callback)

Sets a callback which will be triggered when onSceneLoad or onNewScene events take place. This allows users to customize the behaviour of the Working Set manager when scenes are changed. The callback is not expected to take any arguments.

Parameters:callback (callable) – The callback to set.
static setOpArgs(op, opArgName, workingSetName, txn=None, opType=None, opArgs=None, updateOnWorkingSetChanges=True)

Sets the Op args for the given Op to contain information about the Working Set of the given name, and optionally registers a callback to update this Op arg when the contents of the Working Set changes.

This allows Working Sets to be used to modify Op args without any UI interaction - e.g. in script mode.

Parameters:
  • op (FnGeolibOp) – The Op which should have the contents of the Working Set of the given name passed into it as an Op arg.
  • opArgName (str) – The name of the Op arg into which the Working Set contents should be passed.
  • workingSetName (str) – The name of a Working Set registered in the Working Set manager.
  • txn (FnGeolib.GeolibRuntime.Transaction or None) – An optional transaction to use. If given, no commits will be made to the runtime. If None, a new transaction will be created and committed to the runtime.
  • opType (str or None) – The type of the Op. If None, the existing Op type for the given Op will be used.
  • opArgs (FnAttribute.GroupAttribute or None) – The args for the Op. If None, the existing args for the given Op will be used.
  • updateOnWorkingSetChanges (bool) – A flag indicating whether a callback should be registered to update the given Op’s args when the contents of the Working Set of the given name changes.
static setWorkingSetPersistent(name, persistent=True)
Parameters:
  • name (str) – The name of the Working Set to set whether it can be deleted.
  • persistent (bool) – A flag indicating whether the Working Set with the given name name should be able to be deleted.