Query
ObjectType Objects
class ObjectType(Enum)
Based on : API description
get_specific
def get_specific(obj: BaseModel) -> dict
This function is used to get the specific parameters for the object. Example: For a Descriptor object, the vector is packed into a blob.
generate_add_query
def generate_add_query(
obj: BaseModel,
cached: List[str] = None,
source_field: str = None,
index: int = 1,
parent: int = 0) -> Tuple[List[object], List[bytearray], int]
Takes the user model, and builds out a sequence of commands that creates a similar structure on apertureDB's graph. For example, given the following
The function will generate the following commands:
AddVideo 1 AddClip 2 AddDescriptor 3 AddConnection 3-2
. . .
Arguments:
obj
BaseModel - The object from the user domain.cached
List[str], optional - helps to optimize sending one blob per node. Defaults to None.source_field
str, optional - Preserves the relevant connection information from user objects. Defaults to None.index
int, optional - The index to start creating references from. Defaults to 1.parent
int, optional - The parent of the current node. Defaults to None.
Returns:
tuple : Contains 3 items:
- List of commands with current node and its children
- List of blobs with current node and its children
- index, adjusting the count of children + self for the number of commands in current query
Query Objects
class Query()
This is the underlying class to generate a query using python code.
connected_to
def connected_to(spec: Query, adj_to: int = 0) -> Query
Can be used to connect two commands together, for non trivial queries. This is the lower level function to create a query.
Arguments:
spec
Query - One command of the query.adj_to
int, optional - The command to refer to. Defaults to 0.
Returns:
Query
- The completed, connected query.
command_properties
def command_properties(prop: str = "") -> List[str]
Helper function to get the properties of all commands the query.
Arguments:
v
str, optional - description. Defaults to "".
Returns:
List[str]
- Properties from commands in the order they should be executed.
spec
@classmethod
@classmethod
def spec(cls,
constraints: Constraints = None,
operations: Operations = None,
with_class: str = "",
limit: int = -1,
sort: Sort = None,
list: List[str] = None,
group_by_src: bool = False,
blobs: bool = False,
set: str = None,
vector: List[float] = None,
k_neighbors: int = 0) -> Query
The specification for a command to be used in a query.
Arguments:
constraints
Constraints, optional - Constraints . Defaults to None.with_class
ObjectType, optional - description. Defaults to ObjectType.CUSTOM.limit
int, optional - description. Defaults to -1.sort
Sort, optional - description. Defaults to None.list
List[str], optional - description. Defaults to None.
Returns:
Query
- The query object.