Uranium
Application Framework
Loading...
Searching...
No Matches
UM.Settings.ContainerQuery.ContainerQuery Class Reference

Wrapper class to perform a search for a certain set of containers. More...

Public Member Functions

 __init__ (self, registry, *ignore_case=False, **kwargs)
 Constructor.
 
Optional[type] getContainerType (self)
 Get the class of the containers that this query should find, if any.
 
 getResult (self)
 Retrieve the result of this query.
 
 isIdOnly (self)
 Check to see if this is a very simple query that looks up a single container by ID.
 
 isHashable (self)
 Check to see if any of the kwargs is a Dict, which is not hashable for query caching.
 
 execute (self, candidates=None)
 Execute the actual query.
 
 __hash__ (self)
 
 __eq__ (self, other)
 
 __str__ (self)
 Human-readable string representation for debugging.
 

Protected Member Functions

 _matchRegExp (self, metadata, property_name, value)
 
 _matchString (self, metadata, property_name, value)
 
 _matchType (self, metadata, property_name, value)
 
 _maybeLowercase (self, value)
 

Protected Attributes

 _registry
 
 _ignore_case
 
 _kwargs
 
 _result
 

Detailed Description

Wrapper class to perform a search for a certain set of containers.

This class is primarily intended to be used internally by ContainerRegistry::findContainers. It is used to perform the actual searching for containers and cache the results.

Note
Instances of this class will ignore the query results when comparing. This is done to simplify the caching code in ContainerRegistry.

Constructor & Destructor Documentation

◆ __init__()

UM.Settings.ContainerQuery.ContainerQuery.__init__ (   self,
  registry,
ignore_case = False,
**  kwargs 
)

Constructor.

Parameters
registryThe ContainerRegistry instance this query operates on.
container_typeA specific container class that should be filtered for.
ignore_caseWhether or not the query should be case sensitive.
kwargsA dict of key, value pairs that should be searched for.

Member Function Documentation

◆ execute()

UM.Settings.ContainerQuery.ContainerQuery.execute (   self,
  candidates = None 
)

Execute the actual query.

This will search the container metadata of the ContainerRegistry based on the arguments provided to this class' constructor. After it is done, the result can be retrieved with getResult().

◆ getContainerType()

Optional[type] UM.Settings.ContainerQuery.ContainerQuery.getContainerType (   self)

Get the class of the containers that this query should find, if any.

If the query doesn't filter on container type, None is returned.

◆ getResult()

UM.Settings.ContainerQuery.ContainerQuery.getResult (   self)

Retrieve the result of this query.

Returns
A list of containers matching this query, or None if the query was not executed.

◆ isHashable()

UM.Settings.ContainerQuery.ContainerQuery.isHashable (   self)

Check to see if any of the kwargs is a Dict, which is not hashable for query caching.

Returns
True if this query is hashable.

◆ isIdOnly()

UM.Settings.ContainerQuery.ContainerQuery.isIdOnly (   self)

Check to see if this is a very simple query that looks up a single container by ID.

Returns
True if this query is case sensitive, has only 1 thing to search for and that thing is "id".

The documentation for this class was generated from the following file: