Skip to content

Commit b618d58

Browse files
committed
Merge branch 'master' of https://github.com/pandas-dev/pandas into cln-arith
2 parents 2a96556 + 5756039 commit b618d58

File tree

15 files changed

+244
-201
lines changed

15 files changed

+244
-201
lines changed

doc/source/whatsnew/v1.2.0.rst

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -268,6 +268,7 @@ Deprecations
268268
- Deprecated :meth:`Index.is_all_dates` (:issue:`27744`)
269269
- Deprecated automatic alignment on comparison operations between :class:`DataFrame` and :class:`Series`, do ``frame, ser = frame.align(ser, axis=1, copy=False)`` before e.g. ``frame == ser`` (:issue:`28759`)
270270
- :meth:`Rolling.count` with ``min_periods=None`` will default to the size of the window in a future version (:issue:`31302`)
271+
- :meth:`Index.ravel` returning a ``np.ndarray`` is deprecated, in the future this will return a view on the same index (:issue:`19956`)
271272

272273
.. ---------------------------------------------------------------------------
273274

pandas/core/arrays/datetimelike.py

Lines changed: 9 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -765,9 +765,7 @@ def _validate_shift_value(self, fill_value):
765765

766766
return self._unbox(fill_value)
767767

768-
def _validate_scalar(
769-
self, value, msg: Optional[str] = None, cast_str: bool = False
770-
):
768+
def _validate_scalar(self, value, msg: Optional[str] = None):
771769
"""
772770
Validate that the input value can be cast to our scalar_type.
773771
@@ -778,14 +776,12 @@ def _validate_scalar(
778776
Message to raise in TypeError on invalid input.
779777
If not provided, `value` is cast to a str and used
780778
as the message.
781-
cast_str : bool, default False
782-
Whether to try to parse string input to scalar_type.
783779
784780
Returns
785781
-------
786782
self._scalar_type or NaT
787783
"""
788-
if cast_str and isinstance(value, str):
784+
if isinstance(value, str):
789785
# NB: Careful about tzawareness
790786
try:
791787
value = self._scalar_from_string(value)
@@ -807,9 +803,7 @@ def _validate_scalar(
807803

808804
return value
809805

810-
def _validate_listlike(
811-
self, value, opname: str, cast_str: bool = False, allow_object: bool = False
812-
):
806+
def _validate_listlike(self, value, opname: str, allow_object: bool = False):
813807
if isinstance(value, type(self)):
814808
return value
815809

@@ -818,7 +812,7 @@ def _validate_listlike(
818812
value = array(value)
819813
value = extract_array(value, extract_numpy=True)
820814

821-
if cast_str and is_dtype_equal(value.dtype, "string"):
815+
if is_dtype_equal(value.dtype, "string"):
822816
# We got a StringArray
823817
try:
824818
# TODO: Could use from_sequence_of_strings if implemented
@@ -848,9 +842,9 @@ def _validate_listlike(
848842
def _validate_searchsorted_value(self, value):
849843
msg = "searchsorted requires compatible dtype or scalar"
850844
if not is_list_like(value):
851-
value = self._validate_scalar(value, msg, cast_str=True)
845+
value = self._validate_scalar(value, msg)
852846
else:
853-
value = self._validate_listlike(value, "searchsorted", cast_str=True)
847+
value = self._validate_listlike(value, "searchsorted")
854848

855849
rv = self._unbox(value)
856850
return self._rebox_native(rv)
@@ -861,15 +855,15 @@ def _validate_setitem_value(self, value):
861855
f"or array of those. Got '{type(value).__name__}' instead."
862856
)
863857
if is_list_like(value):
864-
value = self._validate_listlike(value, "setitem", cast_str=True)
858+
value = self._validate_listlike(value, "setitem")
865859
else:
866-
value = self._validate_scalar(value, msg, cast_str=True)
860+
value = self._validate_scalar(value, msg)
867861

868862
return self._unbox(value, setitem=True)
869863

870864
def _validate_insert_value(self, value):
871865
msg = f"cannot insert {type(self).__name__} with incompatible label"
872-
value = self._validate_scalar(value, msg, cast_str=False)
866+
value = self._validate_scalar(value, msg)
873867

874868
self._check_compatible_with(value, setitem=True)
875869
# TODO: if we dont have compat, should we raise or astype(object)?

pandas/core/arrays/interval.py

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -545,10 +545,10 @@ def __iter__(self):
545545
def __len__(self) -> int:
546546
return len(self._left)
547547

548-
def __getitem__(self, value):
549-
value = check_array_indexer(self, value)
550-
left = self._left[value]
551-
right = self._right[value]
548+
def __getitem__(self, key):
549+
key = check_array_indexer(self, key)
550+
left = self._left[key]
551+
right = self._right[key]
552552

553553
if not isinstance(left, (np.ndarray, ExtensionArray)):
554554
# scalar

pandas/core/indexes/base.py

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -659,6 +659,12 @@ def ravel(self, order="C"):
659659
--------
660660
numpy.ndarray.ravel
661661
"""
662+
warnings.warn(
663+
"Index.ravel returning ndarray is deprecated; in a future version "
664+
"this will return a view on self.",
665+
FutureWarning,
666+
stacklevel=2,
667+
)
662668
values = self._get_engine_target()
663669
return values.ravel(order=order)
664670

pandas/core/indexes/datetimelike.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -646,7 +646,7 @@ def _wrap_joined_index(self, joined: np.ndarray, other):
646646
def _convert_arr_indexer(self, keyarr):
647647
try:
648648
return self._data._validate_listlike(
649-
keyarr, "convert_arr_indexer", cast_str=True, allow_object=True
649+
keyarr, "convert_arr_indexer", allow_object=True
650650
)
651651
except (ValueError, TypeError):
652652
return com.asarray_tuplesafe(keyarr)

pandas/core/indexes/timedeltas.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -217,7 +217,7 @@ def get_loc(self, key, method=None, tolerance=None):
217217
raise InvalidIndexError(key)
218218

219219
try:
220-
key = self._data._validate_scalar(key, cast_str=True)
220+
key = self._data._validate_scalar(key)
221221
except TypeError as err:
222222
raise KeyError(key) from err
223223

pandas/io/formats/format.py

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1677,7 +1677,8 @@ def is_dates_only(
16771677
values: Union[np.ndarray, DatetimeArray, Index, DatetimeIndex]
16781678
) -> bool:
16791679
# return a boolean if we are only dates (and don't have a timezone)
1680-
values = values.ravel()
1680+
if not isinstance(values, Index):
1681+
values = values.ravel()
16811682

16821683
values = DatetimeIndex(values)
16831684
if values.tz is not None:

0 commit comments

Comments
 (0)