Skip to content

Support searching by multiple platforms - #119

Open
suhaslord wants to merge 1 commit into
nasa:developfrom
suhaslord:cursor/feat/multi-platform-search-80-71c8
Open

Support searching by multiple platforms#119
suhaslord wants to merge 1 commit into
nasa:developfrom
suhaslord:cursor/feat/multi-platform-search-80-71c8

Conversation

@suhaslord

Copy link
Copy Markdown

Summary

Implements support for searching by multiple platforms for both CollectionQuery and GranuleQuery, as requested in issue #80.

Changes

Code

  • cmr/queries.py: Updated platform() in GranuleCollectionBaseQuery to accept Union[str, Sequence[str]]
    • Single string: keeps existing behavior (params['platform'] = platform)
    • Sequence of strings: list → repeated platform[]= query params
    • Empty/falsy values still raise ValueError

Tests

  • tests/test_collection.py / tests/test_granule.py: multi-platform + empty-list tests; existing single-platform tests still pass

Docs

  • CHANGELOG.md: Unreleased entry for multi-platform support

Behavior

# single (unchanged)
CollectionQuery().platform("Terra")
# ...platform=Terra...

# multiple (new)
CollectionQuery().platform(["Terra", "Aqua"])
# ...platform[]=Terra&platform[]=Aqua...

All 129 tests pass.

Closes #80

Submitted from fork as requested by @chuckwondo.

- Update platform() method in GranuleCollectionBaseQuery to accept Union[str, Sequence[str]]
- Backward compatible: single string works as before
- Multiple platforms passed as list for proper URL formatting (platform[]=...)
- Add ValueError for empty/falsy platform values
- Add tests for single, multiple, and empty platform cases in both CollectionQuery and GranuleQuery
- Update CHANGELOG.md with new feature

Closes nasa#80

Co-authored-by: Suhas <suhaslord@users.noreply.github.com>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

Support searching by multiple platforms

2 participants