Skip to content

Commit 63c961c

Browse files
committed
feat: add backwards compatibility for variable query param
1 parent bc9dc60 commit 63c961c

3 files changed

Lines changed: 11 additions & 9 deletions

File tree

tests/test_dependencies.py

Lines changed: 7 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -27,7 +27,7 @@ def test_granule_search_temporal_interval_unchanged():
2727
def test_interpolated_xarray_params_single_datetime():
2828
"""Test InterpolatedXarrayParams with single datetime interpolation."""
2929
xarray_params = InterpolatedXarrayParams(
30-
variable="temperature", sel=["time={datetime}", "lev=1000"]
30+
variables=["temperature"], sel=["time={datetime}", "lev=1000"]
3131
)
3232

3333
single_datetime = datetime(2025, 9, 23, 0, 0, 0, tzinfo=timezone.utc)
@@ -39,13 +39,13 @@ def test_interpolated_xarray_params_single_datetime():
3939
result = dependencies.interpolated_xarray_ds_params(xarray_params, granule_search)
4040

4141
assert result.sel == [f"time={single_datetime.isoformat()}", "lev=1000"]
42-
assert result.variable == "temperature"
42+
assert result.variables == ["temperature"]
4343

4444

4545
def test_interpolated_xarray_params_datetime_range():
4646
"""Test InterpolatedXarrayParams with datetime range (uses start datetime)."""
4747
xarray_params = InterpolatedXarrayParams(
48-
variable="temperature", sel=["time={datetime}"]
48+
variables=["temperature"], sel=["time={datetime}"]
4949
)
5050

5151
start_datetime = datetime(2025, 9, 23, 0, 0, 0, tzinfo=timezone.utc)
@@ -63,7 +63,7 @@ def test_interpolated_xarray_params_datetime_range():
6363
def test_interpolated_xarray_params_no_datetime_template():
6464
"""Test InterpolatedXarrayParams when sel doesn't contain datetime template."""
6565
xarray_params = InterpolatedXarrayParams(
66-
variable="temperature",
66+
variables=["temperature"],
6767
sel=["time=2025-01-01T00:00:00Z", "lev=1000"],
6868
)
6969

@@ -80,7 +80,7 @@ def test_interpolated_xarray_params_no_datetime_template():
8080

8181
def test_interpolated_xarray_params_no_sel():
8282
"""Test InterpolatedXarrayParams when sel is None or empty."""
83-
xarray_params = InterpolatedXarrayParams(variable="temperature", sel=None)
83+
xarray_params = InterpolatedXarrayParams(variables=["temperature"], sel=None)
8484

8585
single_datetime = datetime(2025, 9, 23, 0, 0, 0, tzinfo=timezone.utc)
8686
granule_search = GranuleSearch(
@@ -91,13 +91,13 @@ def test_interpolated_xarray_params_no_sel():
9191
result = dependencies.interpolated_xarray_ds_params(xarray_params, granule_search)
9292

9393
assert result.sel is None
94-
assert result.variable == "temperature"
94+
assert result.variables == ["temperature"]
9595

9696

9797
def test_interpolated_xarray_params_multiple_templates():
9898
"""Test InterpolatedXarrayParams with multiple datetime templates."""
9999
xarray_params = InterpolatedXarrayParams(
100-
variable="temperature",
100+
variables=["temperature"],
101101
sel=["time={datetime}", "start_time={datetime}", "lev=1000"],
102102
)
103103

titiler/cmr/dependencies.py

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -115,7 +115,9 @@ def __post_init__(self):
115115
class XarrayDsParams(DefaultDependency):
116116
"""Xarray Dataset Options."""
117117

118-
variables: Annotated[list[str], Query(description="Xarray Variable name.")]
118+
variables: Annotated[
119+
list[str], Query(alias="variable", description="Xarray Variable name.")
120+
]
119121

120122
sel: Annotated[
121123
list[SelDimStr] | None,

titiler/cmr/reader.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -134,7 +134,7 @@ def get_variables(
134134
xarray.DataArray: 2D or 3D DataArray.
135135
136136
"""
137-
da = xr.concat([ds[variable] for variable in variables], dim="band")
137+
da = xr.concat([ds[variable] for variable in variables], dim="band").squeeze()
138138

139139
for selector in _parse_dsl(sel):
140140
dimension = selector["dimension"]

0 commit comments

Comments
 (0)