Skip to content

Commit bdb3e2b

Browse files
Merge pull request #1607 from LOCEANlloydizard/try-unpin-pandas
Check unpin pandas < 3 Closes #1600
2 parents 82c5d31 + c7271ff commit bdb3e2b

7 files changed

Lines changed: 20 additions & 12 deletions

File tree

echopype/echodata/utils_platform.py

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -26,8 +26,7 @@ def _clip_by_time_dim(external_ds, ext_time_dim_name, ping_time):
2626
min and max ping_time and taking all the times between those indices.
2727
"""
2828

29-
sorted_external_time = external_ds[ext_time_dim_name].data
30-
sorted_external_time.sort()
29+
sorted_external_time = np.sort(external_ds[ext_time_dim_name].data)
3130

3231
min_index = max(
3332
np.searchsorted(sorted_external_time, ping_time.min(), side="left") - 1,

echopype/qc/api.py

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -64,7 +64,8 @@ def coerce_increasing_time(
6464
would remain undisturbed.
6565
"""
6666

67-
ds[time_name].data[:] = _clean_reversed(ds[time_name].data, win_len)
67+
da = ds[time_name]
68+
ds[time_name] = (da.dims, _clean_reversed(da.values, win_len))
6869

6970

7071
def exist_reversed_time(ds, time_name):

echopype/testing.py

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -15,12 +15,12 @@
1515

1616

1717
def _gen_ping_time(ping_time_len, ping_time_interval, ping_time_jitter_max_ms=0):
18-
ping_time = pd.date_range("2018-07-01", periods=ping_time_len, freq=ping_time_interval)
18+
ping_time = pd.Timestamp("2018-07-01") + pd.to_timedelta(
19+
np.arange(ping_time_len) * pd.to_timedelta(ping_time_interval)
20+
)
1921
if ping_time_jitter_max_ms != 0: # if to add jitter
20-
jitter = (
21-
np.random.randint(ping_time_jitter_max_ms, size=ping_time_len) / 1000
22-
) # convert to seconds
23-
ping_time = pd.to_datetime(ping_time.astype("int64") / 1e9 + jitter, unit="s")
22+
jitter = np.random.randint(ping_time_jitter_max_ms, size=ping_time_len) # integer ms
23+
ping_time = (ping_time + pd.to_timedelta(jitter, unit="ms")).sort_values()
2424
return ping_time
2525

2626

echopype/tests/commongrid/test_commongrid_api.py

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -332,7 +332,9 @@ def test_compute_MVBS_range_output(request, er_type):
332332
ds_MVBS = ep.commongrid.compute_MVBS(ds_Sv, range_bin="5m", ping_time_bin="10s")
333333

334334
if er_type == "regular":
335-
dt_ns = np.diff(ds_Sv["ping_time"][[0, -1]].values)[0]
335+
dt_ns = pd.Timedelta(
336+
ds_Sv["ping_time"].values[-1] - ds_Sv["ping_time"].values[0]
337+
).value
336338
expected_len = (
337339
ds_Sv["channel"].size, # channel
338340
int(np.ceil(int(dt_ns) / 1e9 / 10)), # ping_time

echopype/tests/consolidate/test_add_location.py

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -249,7 +249,11 @@ def test_add_location_time_duplicates_value_error(
249249
)
250250

251251
# Add duplicates to `time_dim`
252-
ed["Platform"][time_dim_name].data[0] = ed["Platform"][time_dim_name].data[1]
252+
# Make a writable copy before modifying the coordinate values
253+
da = ed["Platform"][time_dim_name]
254+
vals = da.to_numpy().copy()
255+
vals[0] = vals[1]
256+
ed["Platform"] = ed["Platform"].assign_coords({time_dim_name: (da.dims, vals)})
253257

254258
# Check if the expected error is logged
255259
with pytest.raises(ValueError) as exc_info:

echopype/tests/echodata/test_echodata_combine.py

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -220,7 +220,9 @@ def attr_time_to_dt(time_str):
220220

221221
# correctly set filenames values for constructed combined Dataset
222222
if "filenames" in test_ds:
223-
test_ds.filenames.values[:] = np.arange(len(test_ds.filenames), dtype=int)
223+
test_ds = test_ds.assign_coords(
224+
filenames=np.arange(test_ds.sizes["filenames"], dtype=int)
225+
)
224226

225227
# correctly modify Provenance attributes, so we can do a direct compare
226228
if group_name == "Provenance":

requirements.txt

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -8,7 +8,7 @@ geopy
88
jinja2
99
netCDF4>1.6
1010
numpy
11-
pandas<3
11+
pandas
1212
psutil>=5.9.1
1313
pynmea2
1414
pytz

0 commit comments

Comments
 (0)