@@ -54,7 +54,7 @@ async def all_collections( # noqa: C901
54
54
sortby : Optional [str ] = None ,
55
55
filter_expr : Optional [str ] = None ,
56
56
filter_lang : Optional [str ] = None ,
57
- q : Optional [List [str ]] = None ,
57
+ q : Optional [List [str ] | str ] = None ,
58
58
** kwargs ,
59
59
) -> Collections :
60
60
"""Cross catalog search (GET).
@@ -359,6 +359,7 @@ async def item_collection(
359
359
filter_expr : Optional [str ] = None ,
360
360
filter_lang : Optional [str ] = None ,
361
361
token : Optional [str ] = None ,
362
+ q : Optional [List [str ] | str ] = None ,
362
363
** kwargs ,
363
364
) -> ItemCollection :
364
365
"""Get all items from a specific collection.
@@ -391,6 +392,7 @@ async def item_collection(
391
392
filter_lang = filter_lang ,
392
393
fields = fields ,
393
394
sortby = sortby ,
395
+ q = q ,
394
396
)
395
397
396
398
try :
@@ -489,6 +491,7 @@ async def get_search(
489
491
filter_expr : Optional [str ] = None ,
490
492
filter_lang : Optional [str ] = None ,
491
493
token : Optional [str ] = None ,
494
+ q : Optional [List [str ] | str ] = None ,
492
495
** kwargs ,
493
496
) -> ItemCollection :
494
497
"""Cross catalog search (GET).
@@ -516,6 +519,7 @@ async def get_search(
516
519
sortby = sortby ,
517
520
filter_query = filter_expr ,
518
521
filter_lang = filter_lang ,
522
+ q = q ,
519
523
)
520
524
521
525
try :
@@ -550,7 +554,7 @@ def _clean_search_args( # noqa: C901
550
554
sortby : Optional [str ] = None ,
551
555
filter_query : Optional [str ] = None ,
552
556
filter_lang : Optional [str ] = None ,
553
- q : Optional [List [str ]] = None ,
557
+ q : Optional [List [str ] | str ] = None ,
554
558
) -> Dict [str , Any ]:
555
559
"""Clean up search arguments to match format expected by pgstac"""
556
560
if filter_query :
@@ -595,7 +599,9 @@ def _clean_search_args( # noqa: C901
595
599
596
600
base_args ["fields" ] = {"include" : includes , "exclude" : excludes }
597
601
598
- if q :
602
+ # free-text search basic list[str] vs advanced str
603
+ # it is up to advanced to form the string properly
604
+ if isinstance (q , list ):
599
605
base_args ["q" ] = " OR " .join (q )
600
606
601
607
# Remove None values from dict
0 commit comments