@@ -14,13 +14,6 @@ def __init__(self, ob: ObjectBox, box: 'Box'):
14
14
self ._entity = box ._entity
15
15
self ._c_builder = obx_query_builder (ob ._c_store , box ._entity .id )
16
16
17
- def _get_property_id (self , prop : Union [int , str , Property ]) -> int :
18
- if type (prop ) is int :
19
- return prop
20
- elif type (prop ) is str :
21
- prop = self ._entity .get_property (prop )
22
- return prop ._id
23
-
24
17
def close (self ) -> int :
25
18
return obx_qb_close (self ._c_builder )
26
19
@@ -31,101 +24,97 @@ def error_message(self) -> str:
31
24
return obx_qb_error_message (self ._c_builder )
32
25
33
26
def equals_string (self , prop : Union [int , str , Property ], value : str , case_sensitive : bool = True ) -> obx_qb_cond :
34
- prop_id = self ._get_property_id (prop )
27
+ prop_id = self ._entity . get_property_id (prop )
35
28
cond = obx_qb_equals_string (self ._c_builder , prop_id , c_str (value ), case_sensitive )
36
29
return cond
37
30
38
31
def not_equals_string (self , prop : Union [int , str , Property ], value : str ,
39
32
case_sensitive : bool = True ) -> obx_qb_cond :
40
- prop_id = self ._get_property_id (prop )
33
+ prop_id = self ._entity . get_property_id (prop )
41
34
cond = obx_qb_not_equals_string (self ._c_builder , prop_id , c_str (value ), case_sensitive )
42
35
return cond
43
36
44
37
def contains_string (self , prop : Union [int , str , Property ], value : str , case_sensitive : bool = True ) -> obx_qb_cond :
45
- prop_id = self ._get_property_id (prop )
38
+ prop_id = self ._entity . get_property_id (prop )
46
39
cond = obx_qb_contains_string (self ._c_builder , prop_id , c_str (value ), case_sensitive )
47
40
return cond
48
41
49
42
def starts_with_string (self , prop : Union [int , str , Property ], value : str ,
50
43
case_sensitive : bool = True ) -> obx_qb_cond :
51
- prop_id = self ._get_property_id (prop )
44
+ prop_id = self ._entity . get_property_id (prop )
52
45
cond = obx_qb_starts_with_string (self ._c_builder , prop_id , c_str (value ), case_sensitive )
53
46
return cond
54
47
55
48
def ends_with_string (self , prop : Union [int , str , Property ], value : str , case_sensitive : bool = True ) -> obx_qb_cond :
56
- prop_id = self ._get_property_id (prop )
49
+ prop_id = self ._entity . get_property_id (prop )
57
50
cond = obx_qb_ends_with_string (self ._c_builder , prop_id , c_str (value ), case_sensitive )
58
51
return cond
59
52
60
53
def greater_than_string (self , prop : Union [int , str , Property ], value : str ,
61
54
case_sensitive : bool = True ) -> obx_qb_cond :
62
- prop_id = self ._get_property_id (prop )
55
+ prop_id = self ._entity . get_property_id (prop )
63
56
cond = obx_qb_greater_than_string (self ._c_builder , prop_id , c_str (value ), case_sensitive )
64
57
return cond
65
58
66
59
def greater_or_equal_string (self , prop : Union [int , str , Property ], value : str ,
67
60
case_sensitive : bool = True ) -> obx_qb_cond :
68
- prop_id = self ._get_property_id (prop )
61
+ prop_id = self ._entity . get_property_id (prop )
69
62
cond = obx_qb_greater_or_equal_string (self ._c_builder , prop_id , c_str (value ), case_sensitive )
70
63
return cond
71
64
72
65
def less_than_string (self , prop : Union [int , str , Property ], value : str , case_sensitive : bool = True ) -> obx_qb_cond :
73
- prop_id = self ._get_property_id (prop )
66
+ prop_id = self ._entity . get_property_id (prop )
74
67
cond = obx_qb_less_than_string (self ._c_builder , prop_id , c_str (value ), case_sensitive )
75
68
return cond
76
69
77
70
def less_or_equal_string (self , prop : Union [int , str , Property ], value : str ,
78
71
case_sensitive : bool = True ) -> obx_qb_cond :
79
- prop_id = self ._get_property_id (prop )
72
+ prop_id = self ._entity . get_property_id (prop )
80
73
cond = obx_qb_less_or_equal_string (self ._c_builder , prop_id , c_str (value ), case_sensitive )
81
74
return cond
82
75
83
76
def equals_int (self , prop : Union [int , str , Property ], value : int ) -> obx_qb_cond :
84
- prop_id = self ._get_property_id (prop )
77
+ prop_id = self ._entity . get_property_id (prop )
85
78
cond = obx_qb_equals_int (self ._c_builder , prop_id , value )
86
79
return cond
87
80
88
81
def not_equals_int (self , prop : Union [int , str , Property ], value : int ) -> obx_qb_cond :
89
- prop_id = self ._get_property_id (prop )
82
+ prop_id = self ._entity . get_property_id (prop )
90
83
cond = obx_qb_not_equals_int (self ._c_builder , prop_id , value )
91
84
return cond
92
85
93
86
def greater_than_int (self , prop : Union [int , str , Property ], value : int ) -> obx_qb_cond :
94
- prop_id = self ._get_property_id (prop )
87
+ prop_id = self ._entity . get_property_id (prop )
95
88
cond = obx_qb_greater_than_int (self ._c_builder , prop_id , value )
96
89
return cond
97
90
98
91
def greater_or_equal_int (self , prop : Union [int , str , Property ], value : int ) -> obx_qb_cond :
99
- prop_id = self ._get_property_id (prop )
92
+ prop_id = self ._entity . get_property_id (prop )
100
93
cond = obx_qb_greater_or_equal_int (self ._c_builder , prop_id , value )
101
94
return cond
102
95
103
96
def less_than_int (self , prop : Union [int , str , Property ], value : int ) -> obx_qb_cond :
104
- prop_id = self ._get_property_id (prop )
97
+ prop_id = self ._entity . get_property_id (prop )
105
98
cond = obx_qb_less_than_int (self ._c_builder , prop_id , value )
106
99
return cond
107
100
108
101
def less_or_equal_int (self , prop : Union [int , str , Property ], value : int ) -> obx_qb_cond :
109
- prop_id = self ._get_property_id (prop )
102
+ prop_id = self ._entity . get_property_id (prop )
110
103
cond = obx_qb_less_or_equal_int (self ._c_builder , prop_id , value )
111
104
return cond
112
105
113
106
def between_2ints (self , prop : Union [int , str , Property ], value_a : int , value_b : int ) -> obx_qb_cond :
114
- prop_id = self ._get_property_id (prop )
107
+ prop_id = self ._entity . get_property_id (prop )
115
108
cond = obx_qb_between_2ints (self ._c_builder , prop_id , value_a , value_b )
116
109
return cond
117
110
118
111
def nearest_neighbors_f32 (self , prop : Union [int , str , Property ], query_vector : Union [np .ndarray , List [float ]],
119
112
element_count : int ):
120
- if isinstance (query_vector , np .ndarray ):
121
- if query_vector .dtype != np .float32 :
122
- raise Exception (f"query_vector dtype must be float32" )
123
- query_vector_data = query_vector .ctypes .data_as (ctypes .POINTER (ctypes .c_float ))
124
- else : # List[float]
125
- query_vector_data = py_list_to_c_array (query_vector , ctypes .c_float )
126
-
127
- prop_id = self ._get_property_id (prop )
128
- cond = obx_qb_nearest_neighbors_f32 (self ._c_builder , prop_id , query_vector_data , element_count )
113
+ if isinstance (query_vector , np .ndarray ) and query_vector .dtype != np .float32 :
114
+ raise Exception (f"query_vector dtype is expected to be np.float32, got: { query_vector .dtype } " )
115
+ prop_id = self ._entity .get_property_id (prop )
116
+ c_query_vector = py_list_to_c_array (query_vector , ctypes .c_float )
117
+ cond = obx_qb_nearest_neighbors_f32 (self ._c_builder , prop_id , c_query_vector , element_count )
129
118
return cond
130
119
131
120
def any (self , conditions : List [obx_qb_cond ]) -> obx_qb_cond :
0 commit comments