@@ -463,6 +463,7 @@ def _downcast_2d(self, dtype, using_cow: bool = False) -> list[Block]:
463
463
refs = self .refs if using_cow and new_values is self .values else None
464
464
return [self .make_block (new_values , refs = refs )]
465
465
466
+ @final
466
467
def convert (
467
468
self ,
468
469
* ,
@@ -951,6 +952,7 @@ def set_inplace(self, locs, values: ArrayLike, copy: bool = False) -> None:
951
952
self .values = self .values .copy ()
952
953
self .values [locs ] = values
953
954
955
+ @final
954
956
def take_nd (
955
957
self ,
956
958
indexer : npt .NDArray [np .intp ],
@@ -1632,6 +1634,7 @@ class EABackedBlock(Block):
1632
1634
1633
1635
values : ExtensionArray
1634
1636
1637
+ @final
1635
1638
def shift (self , periods : int , fill_value : Any = None ) -> list [Block ]:
1636
1639
"""
1637
1640
Shift the block by `periods`.
@@ -1644,6 +1647,7 @@ def shift(self, periods: int, fill_value: Any = None) -> list[Block]:
1644
1647
new_values = self .values .T .shift (periods = periods , fill_value = fill_value ).T
1645
1648
return [self .make_block_same_class (new_values )]
1646
1649
1650
+ @final
1647
1651
def setitem (self , indexer , value , using_cow : bool = False ):
1648
1652
"""
1649
1653
Attempt self.values[indexer] = value, possibly creating a new array.
@@ -1702,6 +1706,7 @@ def setitem(self, indexer, value, using_cow: bool = False):
1702
1706
else :
1703
1707
return self
1704
1708
1709
+ @final
1705
1710
def where (
1706
1711
self , other , cond , _downcast : str | bool = "infer" , using_cow : bool = False
1707
1712
) -> list [Block ]:
@@ -1772,6 +1777,7 @@ def where(
1772
1777
nb = self .make_block_same_class (res_values )
1773
1778
return [nb ]
1774
1779
1780
+ @final
1775
1781
def putmask (self , mask , new , using_cow : bool = False ) -> list [Block ]:
1776
1782
"""
1777
1783
See Block.putmask.__doc__
@@ -1839,6 +1845,7 @@ def putmask(self, mask, new, using_cow: bool = False) -> list[Block]:
1839
1845
1840
1846
return [self ]
1841
1847
1848
+ @final
1842
1849
def delete (self , loc ) -> list [Block ]:
1843
1850
# This will be unnecessary if/when __array_function__ is implemented
1844
1851
if self .ndim == 1 :
@@ -1850,10 +1857,12 @@ def delete(self, loc) -> list[Block]:
1850
1857
return []
1851
1858
return super ().delete (loc )
1852
1859
1860
+ @final
1853
1861
@cache_readonly
1854
1862
def array_values (self ) -> ExtensionArray :
1855
1863
return self .values
1856
1864
1865
+ @final
1857
1866
def get_values (self , dtype : DtypeObj | None = None ) -> np .ndarray :
1858
1867
"""
1859
1868
return object dtype as boxed values, such as Timestamps/Timedelta
0 commit comments