@@ -17,13 +17,13 @@ from pandas._libs.khash cimport (khiter_t,
1717
1818from cpython.datetime cimport datetime
1919
20- from np_datetime cimport (pandas_datetimestruct,
21- dtstruct_to_dt64, dt64_to_dtstruct)
20+ from np_datetime cimport pandas_datetimestruct, dt64_to_dtstruct
2221from frequencies cimport get_freq_code
2322from timezones cimport (is_utc, is_tzlocal,
2423 maybe_get_tz, get_dst_info, get_utcoffset)
2524from fields import build_field_sarray
2625from conversion import tz_convert
26+ from ccalendar import DAYS, MONTH_ALIASES, int_to_weekday
2727
2828from pandas._libs.properties import cache_readonly
2929from pandas._libs.tslib import Timestamp
@@ -50,13 +50,6 @@ _ONE_MINUTE = 60 * _ONE_SECOND
5050_ONE_HOUR = 60 * _ONE_MINUTE
5151_ONE_DAY = 24 * _ONE_HOUR
5252
53- DAYS = [' MON' , ' TUE' , ' WED' , ' THU' , ' FRI' , ' SAT' , ' SUN' ]
54- _weekday_rule_aliases = {k: v for k, v in enumerate (DAYS)}
55-
56- _MONTHS = [' JAN' , ' FEB' , ' MAR' , ' APR' , ' MAY' , ' JUN' , ' JUL' ,
57- ' AUG' , ' SEP' , ' OCT' , ' NOV' , ' DEC' ]
58- _MONTH_ALIASES = {(k + 1 ): v for k, v in enumerate (_MONTHS)}
59-
6053# ----------------------------------------------------------------------
6154
6255cpdef resolution(ndarray[int64_t] stamps, tz = None ):
@@ -354,7 +347,7 @@ class Resolution(object):
354347# Frequency Inference
355348
356349
357- # TODO: this is non performiant logic here (and duplicative) and this
350+ # TODO: this is non performant logic here (and duplicative) and this
358351# simply should call unique_1d directly
359352# plus no reason to depend on khash directly
360353cdef unique_deltas(ndarray[int64_t] arr):
@@ -537,15 +530,15 @@ class _FrequencyInferer(object):
537530 annual_rule = self ._get_annual_rule()
538531 if annual_rule:
539532 nyears = self .ydiffs[0 ]
540- month = _MONTH_ALIASES [self .rep_stamp.month]
533+ month = MONTH_ALIASES [self .rep_stamp.month]
541534 alias = ' {prefix}-{month}' .format(prefix = annual_rule, month = month)
542535 return _maybe_add_count(alias, nyears)
543536
544537 quarterly_rule = self ._get_quarterly_rule()
545538 if quarterly_rule:
546539 nquarters = self .mdiffs[0 ] / 3
547540 mod_dict = {0 : 12 , 2 : 11 , 1 : 10 }
548- month = _MONTH_ALIASES [mod_dict[self .rep_stamp.month % 3 ]]
541+ month = MONTH_ALIASES [mod_dict[self .rep_stamp.month % 3 ]]
549542 alias = ' {prefix}-{month}' .format(prefix = quarterly_rule,
550543 month = month)
551544 return _maybe_add_count(alias, nquarters)
@@ -558,7 +551,7 @@ class _FrequencyInferer(object):
558551 days = self .deltas[0 ] / _ONE_DAY
559552 if days % 7 == 0 :
560553 # Weekly
561- day = _weekday_rule_aliases [self .rep_stamp.weekday()]
554+ day = int_to_weekday [self .rep_stamp.weekday()]
562555 return _maybe_add_count(' W-{day}' .format(day = day), days / 7 )
563556 else :
564557 return _maybe_add_count(' D' , days)
@@ -630,7 +623,7 @@ class _FrequencyInferer(object):
630623
631624 # get which week
632625 week = week_of_months[0 ] + 1
633- wd = _weekday_rule_aliases [weekdays[0 ]]
626+ wd = int_to_weekday [weekdays[0 ]]
634627
635628 return ' WOM-{week}{weekday}' .format(week = week, weekday = wd)
636629
@@ -642,7 +635,7 @@ class _TimedeltaFrequencyInferer(_FrequencyInferer):
642635 days = self .deltas[0 ] / _ONE_DAY
643636 if days % 7 == 0 :
644637 # Weekly
645- wd = _weekday_rule_aliases [self .rep_stamp.weekday()]
638+ wd = int_to_weekday [self .rep_stamp.weekday()]
646639 alias = ' W-{weekday}' .format(weekday = wd)
647640 return _maybe_add_count(alias, days / 7 )
648641 else :
0 commit comments