22
22
)
23
23
from xarray .core import indexing
24
24
from xarray .core .common import contains_cftime_datetimes , is_np_datetime_like
25
- from xarray .core .duck_array_ops import asarray
25
+ from xarray .core .duck_array_ops import asarray , ravel , reshape
26
26
from xarray .core .formatting import first_n_items , format_timestamp , last_item
27
27
from xarray .core .pdcompat import nanosecond_precision_timestamp
28
28
from xarray .core .utils import emit_user_level_warning
@@ -315,7 +315,7 @@ def decode_cf_datetime(
315
315
cftime.num2date
316
316
"""
317
317
num_dates = np .asarray (num_dates )
318
- flat_num_dates = num_dates . ravel ()
318
+ flat_num_dates = ravel (num_dates )
319
319
if calendar is None :
320
320
calendar = "standard"
321
321
@@ -348,7 +348,7 @@ def decode_cf_datetime(
348
348
else :
349
349
dates = _decode_datetime_with_pandas (flat_num_dates , units , calendar )
350
350
351
- return dates . reshape (num_dates .shape )
351
+ return reshape (dates , num_dates .shape )
352
352
353
353
354
354
def to_timedelta_unboxed (value , ** kwargs ):
@@ -369,8 +369,8 @@ def decode_cf_timedelta(num_timedeltas, units: str) -> np.ndarray:
369
369
"""
370
370
num_timedeltas = np .asarray (num_timedeltas )
371
371
units = _netcdf_to_numpy_timeunit (units )
372
- result = to_timedelta_unboxed (num_timedeltas . ravel (), unit = units )
373
- return result . reshape (num_timedeltas .shape )
372
+ result = to_timedelta_unboxed (ravel (num_timedeltas ), unit = units )
373
+ return reshape (result , num_timedeltas .shape )
374
374
375
375
376
376
def _unit_timedelta_cftime (units : str ) -> timedelta :
@@ -428,7 +428,7 @@ def infer_datetime_units(dates) -> str:
428
428
'hours', 'minutes' or 'seconds' (the first one that can evenly divide all
429
429
unique time deltas in `dates`)
430
430
"""
431
- dates = np .asarray (dates ). ravel ( )
431
+ dates = ravel ( np .asarray (dates ))
432
432
if np .asarray (dates ).dtype == "datetime64[ns]" :
433
433
dates = to_datetime_unboxed (dates )
434
434
dates = dates [pd .notnull (dates )]
@@ -456,7 +456,7 @@ def infer_timedelta_units(deltas) -> str:
456
456
{'days', 'hours', 'minutes' 'seconds'} (the first one that can evenly
457
457
divide all unique time deltas in `deltas`)
458
458
"""
459
- deltas = to_timedelta_unboxed (np .asarray (deltas ). ravel ( ))
459
+ deltas = to_timedelta_unboxed (ravel ( np .asarray (deltas )))
460
460
unique_timedeltas = np .unique (deltas [pd .notnull (deltas )])
461
461
return _infer_time_units_from_diff (unique_timedeltas )
462
462
@@ -643,7 +643,7 @@ def encode_datetime(d):
643
643
except TypeError :
644
644
return np .nan if d is None else cftime .date2num (d , units , calendar )
645
645
646
- return np .array ([encode_datetime (d ) for d in dates . ravel ()]). reshape ( dates .shape )
646
+ return reshape ( np .array ([encode_datetime (d ) for d in ravel (dates )]), dates .shape )
647
647
648
648
649
649
def cast_to_int_if_safe (num ) -> np .ndarray :
@@ -753,7 +753,7 @@ def _eagerly_encode_cf_datetime(
753
753
# Wrap the dates in a DatetimeIndex to do the subtraction to ensure
754
754
# an OverflowError is raised if the ref_date is too far away from
755
755
# dates to be encoded (GH 2272).
756
- dates_as_index = pd .DatetimeIndex (dates . ravel ())
756
+ dates_as_index = pd .DatetimeIndex (ravel (dates ))
757
757
time_deltas = dates_as_index - ref_date
758
758
759
759
# retrieve needed units to faithfully encode to int64
@@ -791,7 +791,7 @@ def _eagerly_encode_cf_datetime(
791
791
floor_division = True
792
792
793
793
num = _division (time_deltas , time_delta , floor_division )
794
- num = num .values . reshape ( dates .shape )
794
+ num = reshape ( num .values , dates .shape )
795
795
796
796
except (OutOfBoundsDatetime , OverflowError , ValueError ):
797
797
num = _encode_datetime_with_cftime (dates , units , calendar )
@@ -879,7 +879,7 @@ def _eagerly_encode_cf_timedelta(
879
879
units = data_units
880
880
881
881
time_delta = _time_units_to_timedelta64 (units )
882
- time_deltas = pd .TimedeltaIndex (timedeltas . ravel ())
882
+ time_deltas = pd .TimedeltaIndex (ravel (timedeltas ))
883
883
884
884
# retrieve needed units to faithfully encode to int64
885
885
needed_units = data_units
@@ -911,7 +911,7 @@ def _eagerly_encode_cf_timedelta(
911
911
floor_division = True
912
912
913
913
num = _division (time_deltas , time_delta , floor_division )
914
- num = num .values . reshape ( timedeltas .shape )
914
+ num = reshape ( num .values , timedeltas .shape )
915
915
916
916
if dtype is not None :
917
917
num = _cast_to_dtype_if_safe (num , dtype )
0 commit comments