@@ -250,22 +250,11 @@ def _has_complex_internals(self):
250
250
return True
251
251
252
252
def _shallow_copy (self , values = None , name : Label = no_default ):
253
- # TODO: simplify, figure out type of values
254
253
name = name if name is not no_default else self .name
255
254
256
255
if values is None :
257
256
values = self ._data
258
257
259
- if isinstance (values , type (self )):
260
- values = values ._data
261
-
262
- if not isinstance (values , PeriodArray ):
263
- if isinstance (values , np .ndarray ) and values .dtype == "i8" :
264
- values = PeriodArray (values , freq = self .freq )
265
- else :
266
- # GH#30713 this should never be reached
267
- raise TypeError (type (values ), getattr (values , "dtype" , None ))
268
-
269
258
return self ._simple_new (values , name = name )
270
259
271
260
def _maybe_convert_timedelta (self , other ):
@@ -618,10 +607,11 @@ def insert(self, loc, item):
618
607
if not isinstance (item , Period ) or self .freq != item .freq :
619
608
return self .astype (object ).insert (loc , item )
620
609
621
- idx = np .concatenate (
610
+ i8result = np .concatenate (
622
611
(self [:loc ].asi8 , np .array ([item .ordinal ]), self [loc :].asi8 )
623
612
)
624
- return self ._shallow_copy (idx )
613
+ arr = type (self ._data )._simple_new (i8result , dtype = self .dtype )
614
+ return type (self )._simple_new (arr , name = self .name )
625
615
626
616
def join (self , other , how = "left" , level = None , return_indexers = False , sort = False ):
627
617
"""
0 commit comments