hiku.query¶
Hiku doesn’t rely on any specific query language, internally it uses generic query representation to describe result and it could be constructed by parsing different suitable query languages.
However, Hiku provides built-in way to parse graphql query into hiku.query.Node:
Example:
{ foo { bar { baz } } }
This query will be read internally as:
Node([Field('foo'),
Link('bar', Node([Field('baz')]))])
And query result will look like this:
{
'foo': 1,
'bar': {
'baz': 2,
},
}
- class hiku.query.Field(name: str, options: Dict[str, Any] | None = None, alias: str | None = None, directives: Tuple[Directive, ...] | None = None)¶
Represents a field of the node
- Parameters:
name – name of the field
options (optional) – field options – mapping of names to values
alias (optional) – field’s name in result
- class hiku.query.Link(name: str, node: Node, options: Dict[str, Any] | None = None, alias: str | None = None, directives: Tuple[Directive, ...] | None = None)¶
Represents a link to the node
- Parameters:
name – name of the link
node – collection of fields and links –
Nodeoptions (optional) – link options – mapping of names to values
alias (optional) – link’s name in result