@@ -30,85 +30,90 @@ def error_code(self) -> int:
30
30
def error_message (self ) -> str :
31
31
return obx_qb_error_message (self ._c_builder )
32
32
33
- def equals_string (self , prop : Union [int , str , Property ], value : str , case_sensitive : bool = True ):
33
+ def equals_string (self , prop : Union [int , str , Property ], value : str , case_sensitive : bool = True ) -> obx_qb_cond :
34
34
prop_id = self ._get_property_id (prop )
35
- obx_qb_equals_string (self ._c_builder , prop_id , c_str (value ), case_sensitive )
36
- return self
35
+ cond = obx_qb_equals_string (self ._c_builder , prop_id , c_str (value ), case_sensitive )
36
+ return cond
37
37
38
- def not_equals_string (self , prop : Union [int , str , Property ], value : str , case_sensitive : bool = True ):
38
+ def not_equals_string (self , prop : Union [int , str , Property ], value : str ,
39
+ case_sensitive : bool = True ) -> obx_qb_cond :
39
40
prop_id = self ._get_property_id (prop )
40
- obx_qb_not_equals_string (self ._c_builder , prop_id , c_str (value ), case_sensitive )
41
- return self
41
+ cond = obx_qb_not_equals_string (self ._c_builder , prop_id , c_str (value ), case_sensitive )
42
+ return cond
42
43
43
- def contains_string (self , prop : Union [int , str , Property ], value : str , case_sensitive : bool = True ):
44
+ def contains_string (self , prop : Union [int , str , Property ], value : str , case_sensitive : bool = True ) -> obx_qb_cond :
44
45
prop_id = self ._get_property_id (prop )
45
- obx_qb_contains_string (self ._c_builder , prop_id , c_str (value ), case_sensitive )
46
- return self
46
+ cond = obx_qb_contains_string (self ._c_builder , prop_id , c_str (value ), case_sensitive )
47
+ return cond
47
48
48
- def starts_with_string (self , prop : Union [int , str , Property ], value : str , case_sensitive : bool = True ):
49
+ def starts_with_string (self , prop : Union [int , str , Property ], value : str ,
50
+ case_sensitive : bool = True ) -> obx_qb_cond :
49
51
prop_id = self ._get_property_id (prop )
50
- obx_qb_starts_with_string (self ._c_builder , prop_id , c_str (value ), case_sensitive )
51
- return self
52
+ cond = obx_qb_starts_with_string (self ._c_builder , prop_id , c_str (value ), case_sensitive )
53
+ return cond
52
54
53
- def ends_with_string (self , prop : Union [int , str , Property ], value : str , case_sensitive : bool = True ):
55
+ def ends_with_string (self , prop : Union [int , str , Property ], value : str , case_sensitive : bool = True ) -> obx_qb_cond :
54
56
prop_id = self ._get_property_id (prop )
55
- obx_qb_ends_with_string (self ._c_builder , prop_id , c_str (value ), case_sensitive )
56
- return self
57
+ cond = obx_qb_ends_with_string (self ._c_builder , prop_id , c_str (value ), case_sensitive )
58
+ return cond
57
59
58
- def greater_than_string (self , prop : Union [int , str , Property ], value : str , case_sensitive : bool = True ):
60
+ def greater_than_string (self , prop : Union [int , str , Property ], value : str ,
61
+ case_sensitive : bool = True ) -> obx_qb_cond :
59
62
prop_id = self ._get_property_id (prop )
60
- obx_qb_greater_than_string (self ._c_builder , prop_id , c_str (value ), case_sensitive )
61
- return self
63
+ cond = obx_qb_greater_than_string (self ._c_builder , prop_id , c_str (value ), case_sensitive )
64
+ return cond
62
65
63
- def greater_or_equal_string (self , prop : Union [int , str , Property ], value : str , case_sensitive : bool = True ):
66
+ def greater_or_equal_string (self , prop : Union [int , str , Property ], value : str ,
67
+ case_sensitive : bool = True ) -> obx_qb_cond :
64
68
prop_id = self ._get_property_id (prop )
65
- obx_qb_greater_or_equal_string (self ._c_builder , prop_id , c_str (value ), case_sensitive )
66
- return self
69
+ cond = obx_qb_greater_or_equal_string (self ._c_builder , prop_id , c_str (value ), case_sensitive )
70
+ return cond
67
71
68
- def less_than_string (self , prop : Union [int , str , Property ], value : str , case_sensitive : bool = True ):
72
+ def less_than_string (self , prop : Union [int , str , Property ], value : str , case_sensitive : bool = True ) -> obx_qb_cond :
69
73
prop_id = self ._get_property_id (prop )
70
- obx_qb_less_than_string (self ._c_builder , prop_id , c_str (value ), case_sensitive )
71
- return self
74
+ cond = obx_qb_less_than_string (self ._c_builder , prop_id , c_str (value ), case_sensitive )
75
+ return cond
72
76
73
- def less_or_equal_string (self , prop : Union [int , str , Property ], value : str , case_sensitive : bool = True ):
77
+ def less_or_equal_string (self , prop : Union [int , str , Property ], value : str ,
78
+ case_sensitive : bool = True ) -> obx_qb_cond :
74
79
prop_id = self ._get_property_id (prop )
75
- obx_qb_less_or_equal_string (self ._c_builder , prop_id , c_str (value ), case_sensitive )
76
- return self
80
+ cond = obx_qb_less_or_equal_string (self ._c_builder , prop_id , c_str (value ), case_sensitive )
81
+ return cond
77
82
78
- def equals_int (self , prop : Union [int , str , Property ], value : int ):
83
+ def equals_int (self , prop : Union [int , str , Property ], value : int ) -> obx_qb_cond :
79
84
prop_id = self ._get_property_id (prop )
80
- obx_qb_equals_int (self ._c_builder , prop_id , value )
81
- return self
85
+ cond = obx_qb_equals_int (self ._c_builder , prop_id , value )
86
+ return cond
82
87
83
- def not_equals_int (self , prop : Union [int , str , Property ], value : int ):
88
+ def not_equals_int (self , prop : Union [int , str , Property ], value : int ) -> obx_qb_cond :
84
89
prop_id = self ._get_property_id (prop )
85
- obx_qb_not_equals_int (self ._c_builder , prop_id , value )
86
- return self
90
+ cond = obx_qb_not_equals_int (self ._c_builder , prop_id , value )
91
+ return cond
87
92
88
- def greater_than_int (self , prop : Union [int , str , Property ], value : int ):
93
+ def greater_than_int (self , prop : Union [int , str , Property ], value : int ) -> obx_qb_cond :
89
94
prop_id = self ._get_property_id (prop )
90
- obx_qb_greater_than_int (self ._c_builder , prop_id , value )
91
- return self
95
+ cond = obx_qb_greater_than_int (self ._c_builder , prop_id , value )
96
+ return cond
92
97
93
- def greater_or_equal_int (self , prop : Union [int , str , Property ], value : int ):
98
+ def greater_or_equal_int (self , prop : Union [int , str , Property ], value : int ) -> obx_qb_cond :
94
99
prop_id = self ._get_property_id (prop )
95
- obx_qb_greater_or_equal_int (self ._c_builder , prop_id , value )
96
- return self
100
+ cond = obx_qb_greater_or_equal_int (self ._c_builder , prop_id , value )
101
+ return cond
97
102
98
- def less_than_int (self , prop : Union [int , str , Property ], value : int ):
103
+ def less_than_int (self , prop : Union [int , str , Property ], value : int ) -> obx_qb_cond :
99
104
prop_id = self ._get_property_id (prop )
100
- obx_qb_less_than_int (self ._c_builder , prop_id , value )
101
- return self
105
+ cond = obx_qb_less_than_int (self ._c_builder , prop_id , value )
106
+ return cond
102
107
103
- def less_or_equal_int (self , prop : Union [int , str , Property ], value : int ):
108
+ def less_or_equal_int (self , prop : Union [int , str , Property ], value : int ) -> obx_qb_cond :
104
109
prop_id = self ._get_property_id (prop )
105
- obx_qb_less_or_equal_int (self ._c_builder , prop_id , value )
106
- return self
110
+ cond = obx_qb_less_or_equal_int (self ._c_builder , prop_id , value )
111
+ return cond
107
112
108
- def between_2ints (self , prop : Union [int , str , Property ], value_a : int , value_b : int ):
113
+ def between_2ints (self , prop : Union [int , str , Property ], value_a : int , value_b : int ) -> obx_qb_cond :
109
114
prop_id = self ._get_property_id (prop )
110
- obx_qb_between_2ints (self ._c_builder , prop_id , value_a , value_b )
111
- return self
115
+ cond = obx_qb_between_2ints (self ._c_builder , prop_id , value_a , value_b )
116
+ return cond
112
117
113
118
def nearest_neighbors_f32 (self , prop : Union [int , str , Property ], query_vector : Union [np .ndarray , List [float ]],
114
119
element_count : int ):
@@ -117,11 +122,21 @@ def nearest_neighbors_f32(self, prop: Union[int, str, Property], query_vector: U
117
122
raise Exception (f"query_vector dtype must be float32" )
118
123
query_vector_data = query_vector .ctypes .data_as (ctypes .POINTER (ctypes .c_float ))
119
124
else : # List[float]
120
- query_vector_data = ( ctypes .c_float * len ( query_vector ))( * query_vector )
125
+ query_vector_data = py_list_to_c_array ( query_vector , ctypes .c_float )
121
126
122
127
prop_id = self ._get_property_id (prop )
123
- obx_qb_nearest_neighbors_f32 (self ._c_builder , prop_id , query_vector_data , element_count )
124
- return self
128
+ cond = obx_qb_nearest_neighbors_f32 (self ._c_builder , prop_id , query_vector_data , element_count )
129
+ return cond
130
+
131
+ def any (self , conditions : List [obx_qb_cond ]) -> obx_qb_cond :
132
+ c_conditions = py_list_to_c_pointer (conditions , obx_qb_cond )
133
+ cond = obx_qb_any (self ._c_builder , c_conditions , len (conditions ))
134
+ return cond
135
+
136
+ def all (self , conditions : List [obx_qb_cond ]) -> obx_qb_cond :
137
+ c_conditions = py_list_to_c_pointer (conditions , obx_qb_cond )
138
+ cond = obx_qb_all (self ._c_builder , c_conditions , len (conditions ))
139
+ return cond
125
140
126
141
def build (self ) -> Query :
127
142
c_query = obx_query (self ._c_builder )
0 commit comments