udata-hydra-csvapi 0.3.2.dev10__py3-none-any.whl → 0.3.2.dev11__py3-none-any.whl

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
api_tabular/core/query.py CHANGED
@@ -30,7 +30,7 @@ def build_sql_query_string(
30
30
  # is(not)null also has this syntax but is a filter
31
31
  elif len(_split) == 1:
32
32
  if _split[0].split("__")[1] in ["isnull", "isnotnull"]:
33
- _filter, _ = add_filter(_split[0], None)
33
+ _filter, _ = add_filter(_split[0], "")
34
34
  sql_query.append(_filter)
35
35
  else:
36
36
  column, operator = add_aggregator(_split[0], indexes)
@@ -79,7 +79,7 @@ def get_column_and_operator(argument: str) -> tuple[str, str]:
79
79
 
80
80
  def add_filter(
81
81
  argument: str,
82
- value: str | None,
82
+ value: str,
83
83
  *,
84
84
  in_operator: bool = False,
85
85
  ) -> tuple[str | None, bool]:
@@ -90,7 +90,10 @@ def add_filter(
90
90
  if argument == "columns":
91
91
  if in_operator:
92
92
  raise ValueError(f"Argument `{argument}` can't be set within an operator")
93
- return f"select={value}", False
93
+ if '"' in value:
94
+ raise ValueError('Forbidden character `"` in a column name')
95
+ columns = ",".join(f'"{col}"' for col in value.split(","))
96
+ return f"select={columns}", False
94
97
  if "__" in argument:
95
98
  column, normalized_comparator = get_column_and_operator(argument)
96
99
  # when encapsulated in an OR statement, the syntax is `col.eq.val` instead of `col=eq.val`
@@ -209,7 +212,7 @@ def parse_operator(query: str, operator: str, top_level: bool = False):
209
212
  postgrest_params.append(
210
213
  add_filter(
211
214
  param.replace('"', ""),
212
- None,
215
+ "",
213
216
  in_operator=True,
214
217
  )[0]
215
218
  )
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: udata-hydra-csvapi
3
- Version: 0.3.2.dev10
3
+ Version: 0.3.2.dev11
4
4
  Summary: API for CSV converted by udata-hydra
5
5
  Author-email: "data.gouv.fr" <opendatateam@data.gouv.fr>
6
6
  License-Expression: MIT
@@ -5,7 +5,7 @@ api_tabular/core/cors.py,sha256=QY006pAnR1fMBMJJTAeRGcopL_4LkY7YoA3y8KYk4dI,825
5
5
  api_tabular/core/data.py,sha256=5j-3d_el7LMoHpn6V__UdhYHD6GiJbwdH67jrnOYWZQ,1459
6
6
  api_tabular/core/error.py,sha256=xRt6fkQfsiupv0tWWzdX0DJjAKbw1n0tRxFyt15VBLA,1062
7
7
  api_tabular/core/health.py,sha256=NeFT1C00onvm3CbgesFAcN1N8bmelbQdEYFbmmftICQ,647
8
- api_tabular/core/query.py,sha256=aI_lqb7LGAC-EQUVfP-q90KxcWFkDTuKmW8I7yCTvO4,10067
8
+ api_tabular/core/query.py,sha256=Twlv-xLYzZ0YGzCDiJ1uJAH2nZT9hEATNSSPiHVnRU8,10226
9
9
  api_tabular/core/sentry.py,sha256=fN5MrDZszLnzLXF3b_nUymPVB0ffNn4PI7xS1GtJNyE,948
10
10
  api_tabular/core/swagger.py,sha256=eSCAu0TQsT2tlQiW7i-ueZB14qTd8TfHbUypZeeB-0w,14640
11
11
  api_tabular/core/url.py,sha256=af7VKfrMtKMzlHrGgtLDLuRBim4qFv7xlt2PYxAyW2g,761
@@ -16,8 +16,8 @@ api_tabular/metrics/app.py,sha256=JY7GZSqCsihEcQy7SFTiKqvoyxfGRFaJ48CovNQTq4Y,44
16
16
  api_tabular/tabular/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
17
17
  api_tabular/tabular/app.py,sha256=tbf1Ni_r_bbeivxlMNllVKRoqpajZId6SiurCn1hTas,6645
18
18
  api_tabular/tabular/utils.py,sha256=BL2nl04-3imBQG-RZiYvVMjxoBORi4lwrKq8NiWecLY,4487
19
- udata_hydra_csvapi-0.3.2.dev10.dist-info/licenses/LICENSE,sha256=fb-HAYw94ffh--z1cZrWbpk6YKM0p9WFG7kdd0K7uGQ,1062
20
- udata_hydra_csvapi-0.3.2.dev10.dist-info/METADATA,sha256=TdT5xw8FivU386X-NZPhMeoiosJCaj1JfGj7JJc-TZw,20386
21
- udata_hydra_csvapi-0.3.2.dev10.dist-info/WHEEL,sha256=YCfwYGOYMi5Jhw2fU4yNgwErybb2IX5PEwBKV4ZbdBo,91
22
- udata_hydra_csvapi-0.3.2.dev10.dist-info/top_level.txt,sha256=MAaK09hxwPhIBBC0i1TdEBAgdu3W_gXnAZqk767gVak,12
23
- udata_hydra_csvapi-0.3.2.dev10.dist-info/RECORD,,
19
+ udata_hydra_csvapi-0.3.2.dev11.dist-info/licenses/LICENSE,sha256=fb-HAYw94ffh--z1cZrWbpk6YKM0p9WFG7kdd0K7uGQ,1062
20
+ udata_hydra_csvapi-0.3.2.dev11.dist-info/METADATA,sha256=lXWF7fYmcYSjCifS9tpH3Wyep-08wbK73zMcbocu6FM,20386
21
+ udata_hydra_csvapi-0.3.2.dev11.dist-info/WHEEL,sha256=aeYiig01lYGDzBgS8HxWXOg3uV61G9ijOsup-k9o1sk,91
22
+ udata_hydra_csvapi-0.3.2.dev11.dist-info/top_level.txt,sha256=MAaK09hxwPhIBBC0i1TdEBAgdu3W_gXnAZqk767gVak,12
23
+ udata_hydra_csvapi-0.3.2.dev11.dist-info/RECORD,,
@@ -1,5 +1,5 @@
1
1
  Wheel-Version: 1.0
2
- Generator: setuptools (82.0.0)
2
+ Generator: setuptools (82.0.1)
3
3
  Root-Is-Purelib: true
4
4
  Tag: py3-none-any
5
5