Skip to content

Commit 5cae7aa

Browse files
committed
@jreback changes
1 parent 75ff54d commit 5cae7aa

File tree

2 files changed

+9
-11
lines changed

2 files changed

+9
-11
lines changed

pandas/tests/indexes/period/test_construction.py

+1-1
Original file line numberDiff line numberDiff line change
@@ -120,7 +120,7 @@ def test_constructor_fromarraylike(self):
120120

121121
self.assertRaises(ValueError, PeriodIndex, idx._values)
122122
self.assertRaises(ValueError, PeriodIndex, list(idx._values))
123-
self.assertRaises(ValueError, PeriodIndex,
123+
self.assertRaises(TypeError, PeriodIndex,
124124
data=Period('2007', freq='A'))
125125

126126
result = PeriodIndex(iter(idx))

pandas/tseries/period.py

+8-10
Original file line numberDiff line numberDiff line change
@@ -243,9 +243,7 @@ def __new__(cls, data=None, ordinal=None, freq=None, start=None, end=None,
243243
if not isinstance(data, (np.ndarray, PeriodIndex,
244244
DatetimeIndex, Int64Index)):
245245
if is_scalar(data) or isinstance(data, Period):
246-
raise ValueError('PeriodIndex() must be called with a '
247-
'collection of some kind, %s was passed'
248-
% repr(data))
246+
cls._scalar_data_error(data)
249247

250248
# other iterable of some kind
251249
if not isinstance(data, (list, tuple)):
@@ -254,7 +252,7 @@ def __new__(cls, data=None, ordinal=None, freq=None, start=None, end=None,
254252
data = np.asarray(data)
255253

256254
# datetime other than period
257-
if np.issubdtype(data.dtype, np.datetime64):
255+
if is_datetime64_dtype(data.dtype):
258256
data = dt64arr_to_periodarr(data, freq, tz)
259257
return cls._from_ordinals(data, name=name, freq=freq)
260258

@@ -297,8 +295,7 @@ def _simple_new(cls, values, name=None, freq=None, **kwargs):
297295
values = np.array(values, copy=False)
298296
if len(values) > 0 and is_float_dtype(values):
299297
raise TypeError("PeriodIndex can't take floats")
300-
else:
301-
return cls(values, name=name, freq=freq, **kwargs)
298+
return cls(values, name=name, freq=freq, **kwargs)
302299

303300
return cls._from_ordinals(values, name, freq, **kwargs)
304301

@@ -324,12 +321,13 @@ def _shallow_copy_with_infer(self, values=None, **kwargs):
324321
""" we always want to return a PeriodIndex """
325322
return self._shallow_copy(values=values, **kwargs)
326323

327-
def _shallow_copy(self, values=None, **kwargs):
328-
if kwargs.get('freq') is None:
329-
kwargs['freq'] = self.freq
324+
def _shallow_copy(self, values=None, freq=None, **kwargs):
325+
if freq is None:
326+
freq = self.freq
330327
if values is None:
331328
values = self._values
332-
return super(PeriodIndex, self)._shallow_copy(values=values, **kwargs)
329+
return super(PeriodIndex, self)._shallow_copy(values=values,
330+
freq=freq, **kwargs)
333331

334332
def _coerce_scalar_to_index(self, item):
335333
"""

0 commit comments

Comments
 (0)