@@ -17,13 +17,13 @@ from pandas._libs.khash cimport (khiter_t,
17
17
18
18
from cpython.datetime cimport datetime
19
19
20
- from np_datetime cimport (pandas_datetimestruct,
21
- dtstruct_to_dt64, dt64_to_dtstruct)
20
+ from np_datetime cimport pandas_datetimestruct, dt64_to_dtstruct
22
21
from frequencies cimport get_freq_code
23
22
from timezones cimport (is_utc, is_tzlocal,
24
23
maybe_get_tz, get_dst_info, get_utcoffset)
25
24
from fields import build_field_sarray
26
25
from conversion import tz_convert
26
+ from ccalendar import DAYS, MONTH_ALIASES, int_to_weekday
27
27
28
28
from pandas._libs.properties import cache_readonly
29
29
from pandas._libs.tslib import Timestamp
@@ -50,13 +50,6 @@ _ONE_MINUTE = 60 * _ONE_SECOND
50
50
_ONE_HOUR = 60 * _ONE_MINUTE
51
51
_ONE_DAY = 24 * _ONE_HOUR
52
52
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
-
60
53
# ----------------------------------------------------------------------
61
54
62
55
cpdef resolution(ndarray[int64_t] stamps, tz = None ):
@@ -354,7 +347,7 @@ class Resolution(object):
354
347
# Frequency Inference
355
348
356
349
357
- # TODO: this is non performiant logic here (and duplicative) and this
350
+ # TODO: this is non performant logic here (and duplicative) and this
358
351
# simply should call unique_1d directly
359
352
# plus no reason to depend on khash directly
360
353
cdef unique_deltas(ndarray[int64_t] arr):
@@ -537,15 +530,15 @@ class _FrequencyInferer(object):
537
530
annual_rule = self ._get_annual_rule()
538
531
if annual_rule:
539
532
nyears = self .ydiffs[0 ]
540
- month = _MONTH_ALIASES [self .rep_stamp.month]
533
+ month = MONTH_ALIASES [self .rep_stamp.month]
541
534
alias = ' {prefix}-{month}' .format(prefix = annual_rule, month = month)
542
535
return _maybe_add_count(alias, nyears)
543
536
544
537
quarterly_rule = self ._get_quarterly_rule()
545
538
if quarterly_rule:
546
539
nquarters = self .mdiffs[0 ] / 3
547
540
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 ]]
549
542
alias = ' {prefix}-{month}' .format(prefix = quarterly_rule,
550
543
month = month)
551
544
return _maybe_add_count(alias, nquarters)
@@ -558,7 +551,7 @@ class _FrequencyInferer(object):
558
551
days = self .deltas[0 ] / _ONE_DAY
559
552
if days % 7 == 0 :
560
553
# Weekly
561
- day = _weekday_rule_aliases [self .rep_stamp.weekday()]
554
+ day = int_to_weekday [self .rep_stamp.weekday()]
562
555
return _maybe_add_count(' W-{day}' .format(day = day), days / 7 )
563
556
else :
564
557
return _maybe_add_count(' D' , days)
@@ -630,7 +623,7 @@ class _FrequencyInferer(object):
630
623
631
624
# get which week
632
625
week = week_of_months[0 ] + 1
633
- wd = _weekday_rule_aliases [weekdays[0 ]]
626
+ wd = int_to_weekday [weekdays[0 ]]
634
627
635
628
return ' WOM-{week}{weekday}' .format(week = week, weekday = wd)
636
629
@@ -642,7 +635,7 @@ class _TimedeltaFrequencyInferer(_FrequencyInferer):
642
635
days = self .deltas[0 ] / _ONE_DAY
643
636
if days % 7 == 0 :
644
637
# Weekly
645
- wd = _weekday_rule_aliases [self .rep_stamp.weekday()]
638
+ wd = int_to_weekday [self .rep_stamp.weekday()]
646
639
alias = ' W-{weekday}' .format(weekday = wd)
647
640
return _maybe_add_count(alias, days / 7 )
648
641
else :
0 commit comments