Skip to content

Commit 46802db

Browse files
authored
feat: non str arguments to filters (#58)
* fix: interpolations erros and other things reported by sourcery-ai * feat: non str arguments to filters
1 parent 8728ee8 commit 46802db

File tree

2 files changed

+24
-21
lines changed

2 files changed

+24
-21
lines changed

postgrest_py/base_request_builder.py

+17-17
Original file line numberDiff line numberDiff line change
@@ -129,61 +129,61 @@ def filter(self, column: str, operator: str, criteria: str):
129129
self.session.params = self.session.params.add(key, val)
130130
return self
131131

132-
def eq(self, column: str, value: str):
132+
def eq(self, column: str, value: Any):
133133
return self.filter(column, Filters.EQ, sanitize_param(value))
134134

135-
def neq(self, column: str, value: str):
135+
def neq(self, column: str, value: Any):
136136
return self.filter(column, Filters.NEQ, sanitize_param(value))
137137

138-
def gt(self, column: str, value: str):
138+
def gt(self, column: str, value: Any):
139139
return self.filter(column, Filters.GT, sanitize_param(value))
140140

141-
def gte(self, column: str, value: str):
141+
def gte(self, column: str, value: Any):
142142
return self.filter(column, Filters.GTE, sanitize_param(value))
143143

144-
def lt(self, column: str, value: str):
144+
def lt(self, column: str, value: Any):
145145
return self.filter(column, Filters.LT, sanitize_param(value))
146146

147-
def lte(self, column: str, value: str):
147+
def lte(self, column: str, value: Any):
148148
return self.filter(column, Filters.LTE, sanitize_param(value))
149149

150-
def is_(self, column: str, value: str):
150+
def is_(self, column: str, value: Any):
151151
return self.filter(column, Filters.IS, sanitize_param(value))
152152

153-
def like(self, column: str, pattern: str):
153+
def like(self, column: str, pattern: Any):
154154
return self.filter(column, Filters.LIKE, sanitize_pattern_param(pattern))
155155

156-
def ilike(self, column: str, pattern: str):
156+
def ilike(self, column: str, pattern: Any):
157157
return self.filter(column, Filters.ILIKE, sanitize_pattern_param(pattern))
158158

159-
def fts(self, column: str, query: str):
159+
def fts(self, column: str, query: Any):
160160
return self.filter(column, Filters.FTS, sanitize_param(query))
161161

162-
def plfts(self, column: str, query: str):
162+
def plfts(self, column: str, query: Any):
163163
return self.filter(column, Filters.PLFTS, sanitize_param(query))
164164

165-
def phfts(self, column: str, query: str):
165+
def phfts(self, column: str, query: Any):
166166
return self.filter(column, Filters.PHFTS, sanitize_param(query))
167167

168-
def wfts(self, column: str, query: str):
168+
def wfts(self, column: str, query: Any):
169169
return self.filter(column, Filters.WFTS, sanitize_param(query))
170170

171-
def in_(self, column: str, values: Iterable[str]):
171+
def in_(self, column: str, values: Iterable[Any]):
172172
values = map(sanitize_param, values)
173173
values = ",".join(values)
174174
return self.filter(column, Filters.IN, f"({values})")
175175

176-
def cs(self, column: str, values: Iterable[str]):
176+
def cs(self, column: str, values: Iterable[Any]):
177177
values = map(sanitize_param, values)
178178
values = ",".join(values)
179179
return self.filter(column, Filters.CS, f"{{{values}}}")
180180

181-
def cd(self, column: str, values: Iterable[str]):
181+
def cd(self, column: str, values: Iterable[Any]):
182182
values = map(sanitize_param, values)
183183
values = ",".join(values)
184184
return self.filter(column, Filters.CD, f"{{{values}}}")
185185

186-
def ov(self, column: str, values: Iterable[str]):
186+
def ov(self, column: str, values: Iterable[Any]):
187187
values = map(sanitize_param, values)
188188
values = ",".join(values)
189189
return self.filter(column, Filters.OV, f"{{{values}}}")

postgrest_py/utils.py

+7-4
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,5 @@
1+
from typing import Any
2+
13
from httpx import AsyncClient # noqa: F401
24
from httpx import Client as BaseClient # noqa: F401
35

@@ -7,11 +9,12 @@ def aclose(self) -> None:
79
self.close()
810

911

10-
def sanitize_param(param: str) -> str:
12+
def sanitize_param(param: Any) -> str:
13+
param_str = str(param)
1114
reserved_chars = ",.:()"
12-
if any(char in param for char in reserved_chars):
13-
return f"%22{param}%22"
14-
return param
15+
if any(char in param_str for char in reserved_chars):
16+
return f"%22{param_str}%22"
17+
return param_str
1518

1619

1720
def sanitize_pattern_param(pattern: str) -> str:

0 commit comments

Comments
 (0)