fqr.objects.queries.obj module¶
Query module.
- class AndQuery(class_as_dict: dict[string[snake_case], Any] | None = None, /, **kwargs: Any)¶
Bases:
QueryFilters on all conditions.
- enumerations: lib.t.ClassVar[dict[str, tuple[typ.Primitive, ...]]] = {}¶
- fields: lib.t.ClassVar[typ.FieldsTuple] = ('and_', 'limit', 'sorting')¶
- hash_fields: lib.t.ClassVar[typ.FieldsTuple] = ('sorting', 'limit', 'and_')¶
- class_as_dict: lib.t.Final[lib.t.Optional[dict[typ.string[typ.snake_case], lib.t.Any]]] = {}¶
Instantiate class directly from passed
dict(assumed to be version of class indictform).
- class ContainsQueryCondition(class_as_dict: dict[string[snake_case], Any] | None = None, /, **kwargs: Any)¶
Bases:
QueryConditionFilters where field contains value.
- enumerations: lib.t.ClassVar[dict[str, tuple[typ.Primitive, ...]]] = {}¶
- fields: lib.t.ClassVar[typ.FieldsTuple] = ('contains', 'field', 'limit', 'sorting')¶
- hash_fields: lib.t.ClassVar[typ.FieldsTuple] = ('sorting', 'limit', 'field', 'contains')¶
- class_as_dict: lib.t.Final[lib.t.Optional[dict[typ.string[typ.snake_case], lib.t.Any]]] = {}¶
Instantiate class directly from passed
dict(assumed to be version of class indictform).
- class EqQueryCondition(class_as_dict: dict[string[snake_case], Any] | None = None, /, **kwargs: Any)¶
Bases:
QueryConditionFilters where == value.
- enumerations: lib.t.ClassVar[dict[str, tuple[typ.Primitive, ...]]] = {}¶
- fields: lib.t.ClassVar[typ.FieldsTuple] = ('eq', 'field', 'limit', 'sorting')¶
- hash_fields: lib.t.ClassVar[typ.FieldsTuple] = ('sorting', 'limit', 'field', 'eq')¶
- class_as_dict: lib.t.Final[lib.t.Optional[dict[typ.string[typ.snake_case], lib.t.Any]]] = {}¶
Instantiate class directly from passed
dict(assumed to be version of class indictform).
- class GeQueryCondition(class_as_dict: dict[string[snake_case], Any] | None = None, /, **kwargs: Any)¶
Bases:
QueryConditionFilters where >= value.
- enumerations: lib.t.ClassVar[dict[str, tuple[typ.Primitive, ...]]] = {}¶
- fields: lib.t.ClassVar[typ.FieldsTuple] = ('field', 'ge', 'limit', 'sorting')¶
- hash_fields: lib.t.ClassVar[typ.FieldsTuple] = ('sorting', 'limit', 'field', 'ge')¶
- class_as_dict: lib.t.Final[lib.t.Optional[dict[typ.string[typ.snake_case], lib.t.Any]]] = {}¶
Instantiate class directly from passed
dict(assumed to be version of class indictform).
- class GtQueryCondition(class_as_dict: dict[string[snake_case], Any] | None = None, /, **kwargs: Any)¶
Bases:
QueryConditionFilters where > value.
- enumerations: lib.t.ClassVar[dict[str, tuple[typ.Primitive, ...]]] = {}¶
- fields: lib.t.ClassVar[typ.FieldsTuple] = ('field', 'gt', 'limit', 'sorting')¶
- hash_fields: lib.t.ClassVar[typ.FieldsTuple] = ('sorting', 'limit', 'field', 'gt')¶
- class_as_dict: lib.t.Final[lib.t.Optional[dict[typ.string[typ.snake_case], lib.t.Any]]] = {}¶
Instantiate class directly from passed
dict(assumed to be version of class indictform).
- class InvertQuery(class_as_dict: dict[string[snake_case], Any] | None = None, /, **kwargs: Any)¶
Bases:
QueryInverts the filter.
- enumerations: lib.t.ClassVar[dict[str, tuple[typ.Primitive, ...]]] = {}¶
- fields: lib.t.ClassVar[typ.FieldsTuple] = ('invert', 'limit', 'sorting')¶
- hash_fields: lib.t.ClassVar[typ.FieldsTuple] = ('sorting', 'limit', 'invert')¶
- class_as_dict: lib.t.Final[lib.t.Optional[dict[typ.string[typ.snake_case], lib.t.Any]]] = {}¶
Instantiate class directly from passed
dict(assumed to be version of class indictform).
- class LeQueryCondition(class_as_dict: dict[string[snake_case], Any] | None = None, /, **kwargs: Any)¶
Bases:
QueryConditionFilters where <= value.
- enumerations: lib.t.ClassVar[dict[str, tuple[typ.Primitive, ...]]] = {}¶
- fields: lib.t.ClassVar[typ.FieldsTuple] = ('field', 'le', 'limit', 'sorting')¶
- hash_fields: lib.t.ClassVar[typ.FieldsTuple] = ('sorting', 'limit', 'field', 'le')¶
- class_as_dict: lib.t.Final[lib.t.Optional[dict[typ.string[typ.snake_case], lib.t.Any]]] = {}¶
Instantiate class directly from passed
dict(assumed to be version of class indictform).
- class LtQueryCondition(class_as_dict: dict[string[snake_case], Any] | None = None, /, **kwargs: Any)¶
Bases:
QueryConditionFilters where < value.
- enumerations: lib.t.ClassVar[dict[str, tuple[typ.Primitive, ...]]] = {}¶
- fields: lib.t.ClassVar[typ.FieldsTuple] = ('field', 'limit', 'lt', 'sorting')¶
- hash_fields: lib.t.ClassVar[typ.FieldsTuple] = ('sorting', 'limit', 'field', 'lt')¶
- class_as_dict: lib.t.Final[lib.t.Optional[dict[typ.string[typ.snake_case], lib.t.Any]]] = {}¶
Instantiate class directly from passed
dict(assumed to be version of class indictform).
- class NeQueryCondition(class_as_dict: dict[string[snake_case], Any] | None = None, /, **kwargs: Any)¶
Bases:
QueryConditionFilters where != value.
- enumerations: lib.t.ClassVar[dict[str, tuple[typ.Primitive, ...]]] = {}¶
- fields: lib.t.ClassVar[typ.FieldsTuple] = ('field', 'limit', 'ne', 'sorting')¶
- hash_fields: lib.t.ClassVar[typ.FieldsTuple] = ('sorting', 'limit', 'field', 'ne')¶
- class_as_dict: lib.t.Final[lib.t.Optional[dict[typ.string[typ.snake_case], lib.t.Any]]] = {}¶
Instantiate class directly from passed
dict(assumed to be version of class indictform).
- class OrQuery(class_as_dict: dict[string[snake_case], Any] | None = None, /, **kwargs: Any)¶
Bases:
QueryFilters on any condition.
- enumerations: lib.t.ClassVar[dict[str, tuple[typ.Primitive, ...]]] = {}¶
- fields: lib.t.ClassVar[typ.FieldsTuple] = ('limit', 'or_', 'sorting')¶
- hash_fields: lib.t.ClassVar[typ.FieldsTuple] = ('sorting', 'limit', 'or_')¶
- class_as_dict: lib.t.Final[lib.t.Optional[dict[typ.string[typ.snake_case], lib.t.Any]]] = {}¶
Instantiate class directly from passed
dict(assumed to be version of class indictform).
- class Query(class_as_dict: dict[string[snake_case], Any] | None = None, /, **kwargs: Any)¶
Bases:
ObjectDatabase agnostic query object.
Usage¶
Queries for
Objectscan be generated from their fields using the following comparison operators:field_1_eq_filter = Object.field_1 == 'test_value_123'field_1_ne_filter = Object.field_1 != 'test_value_123'field_1_ge_filter = Object.field_1 >= 'test_value_123'field_1_gt_filter = Object.field_1 > 'test_value_123'field_1_le_filter = Object.field_1 <= 'test_value_123'field_1_lt_filter = Object.field_1 < 'test_value_123'
And the following special operators:
field_1_contains_filter = Object.field_1 << 'test_value_123'field_1_similarity_filter = Object.field_1 % 'test_value_123'field_1_similarity_filter_with_threshold = Object.field_1 % ('test_value_123', 0.8)
Queries may be chained together using the
&and|bitwise operators, corresponding toandandorclauses respectively.Additionally, the invert (
~) operator may be prefixed to any Query to match the opposite of any conditions specified instead.Queries also support optional result limiting and sorting:
Result limits can be specified by setting the
limitfield.Results can be sorted any number of times using the
+=and-=operators.
Example¶
query: Query = ( ( (Object.integer_field >= 1) | (Object.string_field % ('test', 0.75)) ) & ~(Object.list_field << 'test') ) += 'string_field' -= 'integer_field'
In the example above, the query would match any
Objectfor which the string'test'isnota member oflist_fieldand for which either the value forinteger_fieldis greater than or equal to1or the value forstring_fieldis at least75%similar to'test'. Results would then be sorted first inascendingorder onstring_field, then indescendingorder oninteger_field.- sorting: Field[list[QuerySortBy]]¶
- _sort_by(field: str, direction: Literal['asc', 'desc'] = 'asc') None¶
Sort the selected
Querybyfieldanddirection.Direction may be either
'asc'or'desc'.The
fieldshould correspond to an existing field for theObject.
- enumerations: lib.t.ClassVar[dict[str, tuple[typ.Primitive, ...]]] = {}¶
- fields: lib.t.ClassVar[typ.FieldsTuple] = ('limit', 'sorting')¶
- hash_fields: lib.t.ClassVar[typ.FieldsTuple] = ('sorting', 'limit')¶
- class_as_dict: lib.t.Final[lib.t.Optional[dict[typ.string[typ.snake_case], lib.t.Any]]] = {}¶
Instantiate class directly from passed
dict(assumed to be version of class indictform).
- class QuerySortBy(class_as_dict: dict[string[snake_case], Any] | None = None, /, **kwargs: Any)¶
Bases:
ObjectSimple specification for sorting Query results by field.
- enumerations: lib.t.ClassVar[dict[str, tuple[typ.Primitive, ...]]] = {'direction': ('asc', 'desc')}¶
- fields: lib.t.ClassVar[typ.FieldsTuple] = ('direction', 'field')¶
- hash_fields: lib.t.ClassVar[typ.FieldsTuple] = ('direction', 'field')¶
- class_as_dict: lib.t.Final[lib.t.Optional[dict[typ.string[typ.snake_case], lib.t.Any]]] = {}¶
Instantiate class directly from passed
dict(assumed to be version of class indictform).
- class SimilarQueryCondition(class_as_dict: dict[string[snake_case], Any] | None = None, /, **kwargs: Any)¶
Bases:
QueryConditionFilters where field is similar to value.
- enumerations: lib.t.ClassVar[dict[str, tuple[typ.Primitive, ...]]] = {}¶
- fields: lib.t.ClassVar[typ.FieldsTuple] = ('field', 'like', 'limit', 'sorting', 'threshold')¶
- hash_fields: lib.t.ClassVar[typ.FieldsTuple] = ('sorting', 'limit', 'field', 'like', 'threshold')¶
- class_as_dict: lib.t.Final[lib.t.Optional[dict[typ.string[typ.snake_case], lib.t.Any]]] = {}¶
Instantiate class directly from passed
dict(assumed to be version of class indictform).