@@ -868,8 +868,6 @@ def droplevel(self: FrameOrSeries, level, axis=0) -> FrameOrSeries:
868
868
def pop (self , item : Hashable ) -> Series | Any :
869
869
result = self [item ]
870
870
del self [item ]
871
- if self .ndim == 2 :
872
- result ._reset_cacher ()
873
871
874
872
return result
875
873
@@ -3511,46 +3509,12 @@ def to_csv(
3511
3509
# ----------------------------------------------------------------------
3512
3510
# Lookup Caching
3513
3511
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
3523
3512
def _reset_cacher (self ) -> None :
3524
3513
"""
3525
3514
Reset the cacher.
3526
3515
"""
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 )
3552
3517
3553
- @final
3554
3518
def _maybe_update_cacher (
3555
3519
self , clear : bool_t = False , verify_is_copy : bool_t = True
3556
3520
) -> None :
@@ -3565,32 +3529,15 @@ def _maybe_update_cacher(
3565
3529
verify_is_copy : bool, default True
3566
3530
Provide is_copy checks.
3567
3531
"""
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 )
3584
3532
3585
3533
if verify_is_copy :
3586
3534
self ._check_setitem_copy (stacklevel = 5 , t = "referent" )
3587
3535
3588
3536
if clear :
3589
3537
self ._clear_item_cache ()
3590
3538
3591
- @final
3592
3539
def _clear_item_cache (self ) -> None :
3593
- self . _item_cache . clear ( )
3540
+ raise AbstractMethodError ( self )
3594
3541
3595
3542
# ----------------------------------------------------------------------
3596
3543
# Indexing Methods
@@ -3886,26 +3833,6 @@ class animal locomotion
3886
3833
def __getitem__ (self , item ):
3887
3834
raise AbstractMethodError (self )
3888
3835
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
-
3909
3836
def _slice (self : FrameOrSeries , slobj : slice , axis = 0 ) -> FrameOrSeries :
3910
3837
"""
3911
3838
Construct a slice of this container.
@@ -3931,7 +3858,6 @@ def _set_is_copy(self, ref: FrameOrSeries, copy: bool_t = True) -> None:
3931
3858
assert ref is not None
3932
3859
self ._is_copy = weakref .ref (ref )
3933
3860
3934
- @final
3935
3861
def _check_is_chained_assignment_possible (self ) -> bool_t :
3936
3862
"""
3937
3863
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:
3943
3869
single-dtype meaning that the cacher should be updated following
3944
3870
setting.
3945
3871
"""
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 :
3952
3873
self ._check_setitem_copy (stacklevel = 4 , t = "referent" )
3953
3874
return False
3954
3875
0 commit comments