5757}
5858
5959
60- async def get_sqlalchemy_filter (
60+ def get_sqlalchemy_filter (
6161 operator : str , value : Any , allow_arithmetic : bool = True
6262) -> Callable [[str ], Callable ] | None :
6363 if operator in ['in' , 'not_in' , 'between' ]:
@@ -82,55 +82,55 @@ async def get_sqlalchemy_filter(
8282 return sqlalchemy_filter
8383
8484
85- async def get_column (model : Type [Model ] | AliasedClass , field_name : str ):
85+ def get_column (model : Type [Model ] | AliasedClass , field_name : str ):
8686 column = getattr (model , field_name , None )
8787 if column is None :
8888 raise ModelColumnError (f'Column { field_name } is not found in { model } ' )
8989 return column
9090
9191
92- async def parse_filters (model : Type [Model ] | AliasedClass , ** kwargs ) -> list [ColumnElement ]:
92+ def parse_filters (model : Type [Model ] | AliasedClass , ** kwargs ) -> list [ColumnElement ]:
9393 filters = []
9494
9595 for key , value in kwargs .items ():
9696 if '__' in key :
9797 field_name , op = key .rsplit ('__' , 1 )
98- column = await get_column (model , field_name )
98+ column = get_column (model , field_name )
9999 if op == 'or' :
100100 or_filters = [
101101 sqlalchemy_filter (column )(or_value )
102102 for or_op , or_value in value .items ()
103- if (sqlalchemy_filter := await get_sqlalchemy_filter (or_op , or_value )) is not None
103+ if (sqlalchemy_filter := get_sqlalchemy_filter (or_op , or_value )) is not None
104104 ]
105105 filters .append (or_ (* or_filters ))
106106 elif isinstance (value , dict ) and {'value' , 'condition' }.issubset (value ):
107107 advanced_value = value ['value' ]
108108 condition = value ['condition' ]
109- sqlalchemy_filter = await get_sqlalchemy_filter (op , advanced_value )
109+ sqlalchemy_filter = get_sqlalchemy_filter (op , advanced_value )
110110 if sqlalchemy_filter is not None :
111111 condition_filters = []
112112 for cond_op , cond_value in condition .items ():
113- condition_filter = await get_sqlalchemy_filter (cond_op , cond_value , allow_arithmetic = False )
113+ condition_filter = get_sqlalchemy_filter (cond_op , cond_value , allow_arithmetic = False )
114114 condition_filters .append (
115115 condition_filter (sqlalchemy_filter (column )(advanced_value ))(cond_value )
116116 if cond_op != 'between'
117117 else condition_filter (sqlalchemy_filter (column )(advanced_value ))(* cond_value )
118118 )
119119 filters .append (and_ (* condition_filters ))
120120 else :
121- sqlalchemy_filter = await get_sqlalchemy_filter (op , value )
121+ sqlalchemy_filter = get_sqlalchemy_filter (op , value )
122122 if sqlalchemy_filter is not None :
123123 filters .append (
124124 sqlalchemy_filter (column )(value ) if op != 'between' else sqlalchemy_filter (column )(* value )
125125 )
126126 else :
127- column = await get_column (model , key )
127+ column = get_column (model , key )
128128 filters .append (column == value )
129129
130130 return filters
131131
132132
133- async def apply_sorting (
133+ def apply_sorting (
134134 model : Type [Model ] | AliasedClass ,
135135 stmt : Select ,
136136 sort_columns : str | list [str ],
@@ -170,7 +170,7 @@ async def apply_sorting(
170170 validated_sort_orders = ['asc' ] * len (sort_columns ) if not sort_orders else sort_orders
171171
172172 for idx , column_name in enumerate (sort_columns ):
173- column = await get_column (model , column_name )
173+ column = get_column (model , column_name )
174174 order = validated_sort_orders [idx ]
175175 stmt = stmt .order_by (asc (column ) if order == 'asc' else desc (column ))
176176
0 commit comments