Skip to content

Commit

Permalink
MRC -- Selecting with string for cftime
Browse files Browse the repository at this point in the history
See discussion in pydata#9138

This commit and pull request mostly serves as a staging group for a
potential fix.

Test with:

```
pytest xarray/tests/test_cftimeindex.py::test_cftime_noleap_with_str
```
  • Loading branch information
hmaarrfk committed Jun 29, 2024
1 parent 42ed6d3 commit c538a23
Showing 1 changed file with 29 additions and 0 deletions.
29 changes: 29 additions & 0 deletions xarray/tests/test_cftimeindex.py
Original file line number Diff line number Diff line change
Expand Up @@ -988,6 +988,35 @@ def test_cftimeindex_calendar_property(calendar, expected):
assert index.calendar == expected


def test_cftime_noleap_with_str():
# https://github.com/pydata/xarray/issues/9138
time=xr.cftime_range('2000-01-01','2006-01-01', freq='D', calendar='noleap')
temperature = np.ones(len(time))
da = xr.DataArray(
data=temperature,
dims=["time"],
coords=dict(time=time,),
)
# works if array is built with cftime
out=da.sel(time=slice('2001','2002'))
da1=da.convert_calendar('noleap')
# works if array is built with cftime and converted
out1=da1.sel(time=slice('2001','2002'))

time=pd.date_range('2000-01-01','2006-01-01', freq='D',)
temperature = np.ones(len(time))
da2 = xr.DataArray(
data=temperature,
dims=["time"],
coords=dict(time=time,),
)
# works if array is built with pandas time
out2=da2.sel(time=slice('2001','2002'))
da3=da2.convert_calendar('noleap')
# fails if array is built with pandas time and convert to noleap
out3=da3.sel(time=slice('2001','2002'))


@requires_cftime
def test_empty_cftimeindex_calendar_property():
index = CFTimeIndex([])
Expand Down

0 comments on commit c538a23

Please sign in to comment.