From 2bf14dc39a626c84030b0d0d730de5287c2c0543 Mon Sep 17 00:00:00 2001 From: Tom Augspurger Date: Mon, 15 Jun 2020 07:41:22 -0500 Subject: [PATCH 1/2] API: Removed PeriodDtype.dtype_code from public API --- pandas/_libs/tslibs/dtypes.pyx | 12 ++++++------ pandas/_libs/tslibs/period.pyx | 34 +++++++++++++++++----------------- 2 files changed, 23 insertions(+), 23 deletions(-) diff --git a/pandas/_libs/tslibs/dtypes.pyx b/pandas/_libs/tslibs/dtypes.pyx index 0752910317077..143eac7f1ef6e 100644 --- a/pandas/_libs/tslibs/dtypes.pyx +++ b/pandas/_libs/tslibs/dtypes.pyx @@ -8,10 +8,10 @@ cdef class PeriodDtypeBase: describing a PeriodDtype in an integer code. """ # cdef readonly: - # PeriodDtypeCode dtype_code + # PeriodDtypeCode _dtype_code def __cinit__(self, PeriodDtypeCode code): - self.dtype_code = code + self._dtype_code = code def __eq__(self, other): if not isinstance(other, PeriodDtypeBase): @@ -19,12 +19,12 @@ cdef class PeriodDtypeBase: if not isinstance(self, PeriodDtypeBase): # cython semantics, this is a reversed op return False - return self.dtype_code == other.dtype_code + return self._dtype_code == other._dtype_code @property def freq_group(self) -> int: # See also: libperiod.get_freq_group - return (self.dtype_code // 1000) * 1000 + return (self._dtype_code // 1000) * 1000 @property def date_offset(self): @@ -35,8 +35,8 @@ cdef class PeriodDtypeBase: """ from .offsets import to_offset - freqstr = _reverse_period_code_map.get(self.dtype_code) - # equiv: freqstr = libfrequencies.get_freq_str(self.dtype_code) + freqstr = _reverse_period_code_map.get(self._dtype_code) + # equiv: freqstr = libfrequencies.get_freq_str(self._dtype_code) return to_offset(freqstr) diff --git a/pandas/_libs/tslibs/period.pyx b/pandas/_libs/tslibs/period.pyx index d14f9d82eb5be..30caddf81b6e8 100644 --- a/pandas/_libs/tslibs/period.pyx +++ b/pandas/_libs/tslibs/period.pyx @@ -1645,7 +1645,7 @@ cdef class _Period: """ freq = self._maybe_convert_freq(freq) how = validate_end_alias(how) - base1 = self._dtype.dtype_code + base1 = self._dtype._dtype_code base2 = freq_to_dtype_code(freq) # self.n can't be negative or 0 @@ -1734,7 +1734,7 @@ cdef class _Period: return endpoint - Timedelta(1, 'ns') if freq is None: - base = self._dtype.dtype_code + base = self._dtype._dtype_code freq = get_to_timestamp_base(base) base = freq else: @@ -1748,12 +1748,12 @@ cdef class _Period: @property def year(self) -> int: - base = self._dtype.dtype_code + base = self._dtype._dtype_code return pyear(self.ordinal, base) @property def month(self) -> int: - base = self._dtype.dtype_code + base = self._dtype._dtype_code return pmonth(self.ordinal, base) @property @@ -1776,7 +1776,7 @@ cdef class _Period: >>> p.day 11 """ - base = self._dtype.dtype_code + base = self._dtype._dtype_code return pday(self.ordinal, base) @property @@ -1806,7 +1806,7 @@ cdef class _Period: >>> p.hour 0 """ - base = self._dtype.dtype_code + base = self._dtype._dtype_code return phour(self.ordinal, base) @property @@ -1830,7 +1830,7 @@ cdef class _Period: >>> p.minute 3 """ - base = self._dtype.dtype_code + base = self._dtype._dtype_code return pminute(self.ordinal, base) @property @@ -1854,12 +1854,12 @@ cdef class _Period: >>> p.second 12 """ - base = self._dtype.dtype_code + base = self._dtype._dtype_code return psecond(self.ordinal, base) @property def weekofyear(self) -> int: - base = self._dtype.dtype_code + base = self._dtype._dtype_code return pweek(self.ordinal, base) @property @@ -1940,7 +1940,7 @@ cdef class _Period: >>> per.end_time.dayofweek 2 """ - base = self._dtype.dtype_code + base = self._dtype._dtype_code return pweekday(self.ordinal, base) @property @@ -2028,12 +2028,12 @@ cdef class _Period: >>> period.dayofyear 1 """ - base = self._dtype.dtype_code + base = self._dtype._dtype_code return pday_of_year(self.ordinal, base) @property def quarter(self) -> int: - base = self._dtype.dtype_code + base = self._dtype._dtype_code return pquarter(self.ordinal, base) @property @@ -2077,7 +2077,7 @@ cdef class _Period: >>> per.year 2017 """ - base = self._dtype.dtype_code + base = self._dtype._dtype_code return pqyear(self.ordinal, base) @property @@ -2111,7 +2111,7 @@ cdef class _Period: >>> p.days_in_month 29 """ - base = self._dtype.dtype_code + base = self._dtype._dtype_code return pdays_in_month(self.ordinal, base) @property @@ -2149,7 +2149,7 @@ cdef class _Period: return self.freq.freqstr def __repr__(self) -> str: - base = self._dtype.dtype_code + base = self._dtype._dtype_code formatted = period_format(self.ordinal, base) return f"Period('{formatted}', '{self.freqstr}')" @@ -2157,7 +2157,7 @@ cdef class _Period: """ Return a string representation for a particular DataFrame """ - base = self._dtype.dtype_code + base = self._dtype._dtype_code formatted = period_format(self.ordinal, base) value = str(formatted) return value @@ -2309,7 +2309,7 @@ cdef class _Period: >>> a.strftime('%b. %d, %Y was a %A') 'Jan. 01, 2001 was a Monday' """ - base = self._dtype.dtype_code + base = self._dtype._dtype_code return period_format(self.ordinal, base, fmt) From 160a616d793196462c7b1550c11f2f7f7e2c00e9 Mon Sep 17 00:00:00 2001 From: Tom Augspurger Date: Mon, 15 Jun 2020 07:43:11 -0500 Subject: [PATCH 2/2] update pxd --- pandas/_libs/tslibs/dtypes.pxd | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pandas/_libs/tslibs/dtypes.pxd b/pandas/_libs/tslibs/dtypes.pxd index f43bc283d98c7..71b4eeabbaaf5 100644 --- a/pandas/_libs/tslibs/dtypes.pxd +++ b/pandas/_libs/tslibs/dtypes.pxd @@ -73,4 +73,4 @@ cdef enum PeriodDtypeCode: cdef class PeriodDtypeBase: cdef readonly: - PeriodDtypeCode dtype_code + PeriodDtypeCode _dtype_code