@@ -868,8 +868,6 @@ def droplevel(self: FrameOrSeries, level, axis=0) -> FrameOrSeries:
868868 def pop (self , item : Hashable ) -> Series | Any :
869869 result = self [item ]
870870 del self [item ]
871- if self .ndim == 2 :
872- result ._reset_cacher ()
873871
874872 return result
875873
@@ -3511,46 +3509,12 @@ def to_csv(
35113509 # ----------------------------------------------------------------------
35123510 # Lookup Caching
35133511
3514- @final
3515- def _set_as_cached (self , item , cacher ) -> None :
3516- """
3517- Set the _cacher attribute on the calling object with a weakref to
3518- cacher.
3519- """
3520- self ._cacher = (item , weakref .ref (cacher ))
3521-
3522- @final
35233512 def _reset_cacher (self ) -> None :
35243513 """
35253514 Reset the cacher.
35263515 """
3527- if hasattr (self , "_cacher" ):
3528- del self ._cacher
3529-
3530- @final
3531- def _maybe_cache_changed (self , item , value ) -> None :
3532- """
3533- The object has called back to us saying maybe it has changed.
3534- """
3535- loc = self ._info_axis .get_loc (item )
3536- arraylike = value ._values
3537- self ._mgr .iset (loc , arraylike )
3538-
3539- @final
3540- @property
3541- def _is_cached (self ) -> bool_t :
3542- """Return boolean indicating if self is cached or not."""
3543- return getattr (self , "_cacher" , None ) is not None
3544-
3545- @final
3546- def _get_cacher (self ):
3547- """return my cacher or None"""
3548- cacher = getattr (self , "_cacher" , None )
3549- if cacher is not None :
3550- cacher = cacher [1 ]()
3551- return cacher
3516+ raise AbstractMethodError (self )
35523517
3553- @final
35543518 def _maybe_update_cacher (
35553519 self , clear : bool_t = False , verify_is_copy : bool_t = True
35563520 ) -> None :
@@ -3565,32 +3529,15 @@ def _maybe_update_cacher(
35653529 verify_is_copy : bool, default True
35663530 Provide is_copy checks.
35673531 """
3568- cacher = getattr (self , "_cacher" , None )
3569- if cacher is not None :
3570- ref = cacher [1 ]()
3571-
3572- # we are trying to reference a dead referent, hence
3573- # a copy
3574- if ref is None :
3575- del self ._cacher
3576- else :
3577- if len (self ) == len (ref ):
3578- # otherwise, either self or ref has swapped in new arrays
3579- ref ._maybe_cache_changed (cacher [0 ], self )
3580- else :
3581- # GH#33675 we have swapped in a new array, so parent
3582- # reference to self is now invalid
3583- ref ._item_cache .pop (cacher [0 ], None )
35843532
35853533 if verify_is_copy :
35863534 self ._check_setitem_copy (stacklevel = 5 , t = "referent" )
35873535
35883536 if clear :
35893537 self ._clear_item_cache ()
35903538
3591- @final
35923539 def _clear_item_cache (self ) -> None :
3593- self . _item_cache . clear ( )
3540+ raise AbstractMethodError ( self )
35943541
35953542 # ----------------------------------------------------------------------
35963543 # Indexing Methods
@@ -3886,26 +3833,6 @@ class animal locomotion
38863833 def __getitem__ (self , item ):
38873834 raise AbstractMethodError (self )
38883835
3889- @final
3890- def _get_item_cache (self , item ):
3891- """Return the cached item, item represents a label indexer."""
3892- cache = self ._item_cache
3893- res = cache .get (item )
3894- if res is None :
3895- # All places that call _get_item_cache have unique columns,
3896- # pending resolution of GH#33047
3897-
3898- loc = self .columns .get_loc (item )
3899- values = self ._mgr .iget (loc )
3900- res = self ._box_col_values (values , loc ).__finalize__ (self )
3901-
3902- cache [item ] = res
3903- res ._set_as_cached (item , self )
3904-
3905- # for a chain
3906- res ._is_copy = self ._is_copy
3907- return res
3908-
39093836 def _slice (self : FrameOrSeries , slobj : slice , axis = 0 ) -> FrameOrSeries :
39103837 """
39113838 Construct a slice of this container.
@@ -3931,7 +3858,6 @@ def _set_is_copy(self, ref: FrameOrSeries, copy: bool_t = True) -> None:
39313858 assert ref is not None
39323859 self ._is_copy = weakref .ref (ref )
39333860
3934- @final
39353861 def _check_is_chained_assignment_possible (self ) -> bool_t :
39363862 """
39373863 Check if we are a view, have a cacher, and are of mixed type.
@@ -3943,12 +3869,7 @@ def _check_is_chained_assignment_possible(self) -> bool_t:
39433869 single-dtype meaning that the cacher should be updated following
39443870 setting.
39453871 """
3946- if self ._is_view and self ._is_cached :
3947- ref = self ._get_cacher ()
3948- if ref is not None and ref ._is_mixed_type :
3949- self ._check_setitem_copy (stacklevel = 4 , t = "referent" , force = True )
3950- return True
3951- elif self ._is_copy :
3872+ if self ._is_copy :
39523873 self ._check_setitem_copy (stacklevel = 4 , t = "referent" )
39533874 return False
39543875
0 commit comments