Skip to content

Commit 5b3e291

Browse files
committed
Moved constants to frequencies.py
1 parent fec1b51 commit 5b3e291

File tree

3 files changed

+37
-42
lines changed

3 files changed

+37
-42
lines changed

pandas/src/period.pyx

+23-28
Original file line numberDiff line numberDiff line change
@@ -36,12 +36,7 @@ from tslib cimport (
3636
_nat_scalar_rules,
3737
)
3838

39-
from pandas.tseries.frequencies import _period_alias_dict
40-
from pandas.tseries.frequencies import _get_freq_str
41-
from pandas.tseries.frequencies import to_offset
42-
from pandas.tseries.frequencies import get_freq_code as _gfc
4339
from pandas.tseries import frequencies
44-
from pandas.tseries.constants import US_RESO, MS_RESO, S_RESO, T_RESO, H_RESO, D_RESO
4540

4641
from sys import version_info
4742

@@ -468,7 +463,7 @@ cpdef resolution(ndarray[int64_t] stamps, tz=None):
468463
cdef:
469464
Py_ssize_t i, n = len(stamps)
470465
pandas_datetimestruct dts
471-
int reso = D_RESO, curr_reso
466+
int reso = frequencies.D_RESO, curr_reso
472467

473468
if tz is not None:
474469
tz = maybe_get_tz(tz)
@@ -487,20 +482,20 @@ cpdef resolution(ndarray[int64_t] stamps, tz=None):
487482
cdef inline int _reso_stamp(pandas_datetimestruct *dts):
488483
if dts.us != 0:
489484
if dts.us % 1000 == 0:
490-
return MS_RESO
491-
return US_RESO
485+
return frequencies.MS_RESO
486+
return frequencies.US_RESO
492487
elif dts.sec != 0:
493-
return S_RESO
488+
return frequencies.S_RESO
494489
elif dts.min != 0:
495-
return T_RESO
490+
return frequencies.T_RESO
496491
elif dts.hour != 0:
497-
return H_RESO
498-
return D_RESO
492+
return frequencies.H_RESO
493+
return frequencies.D_RESO
499494

500495
cdef _reso_local(ndarray[int64_t] stamps, object tz):
501496
cdef:
502497
Py_ssize_t n = len(stamps)
503-
int reso = D_RESO, curr_reso
498+
int reso = frequencies.D_RESO, curr_reso
504499
ndarray[int64_t] trans, deltas, pos
505500
pandas_datetimestruct dts
506501

@@ -664,12 +659,12 @@ cdef class Period(object):
664659

665660
if isinstance(freq, compat.string_types):
666661
freq = freq.upper()
667-
freq = _period_alias_dict.get(freq, freq)
662+
freq = frequencies._period_alias_dict.get(freq, freq)
668663
elif isinstance(freq, (int, tuple)):
669-
code, stride = _gfc(freq)
670-
freq = _get_freq_str(code, stride)
664+
code, stride = frequencies.get_freq_code(freq)
665+
freq = frequencies._get_freq_str(code, stride)
671666

672-
freq = to_offset(freq)
667+
freq = frequencies.to_offset(freq)
673668

674669
if freq.n <= 0:
675670
raise ValueError('Frequency must be positive, because it'
@@ -711,7 +706,7 @@ cdef class Period(object):
711706

712707
elif isinstance(value, Period):
713708
other = value
714-
if freq is None or _gfc(freq) == _gfc(other.freq):
709+
if freq is None or frequencies.get_freq_code(freq) == frequencies.get_freq_code(other.freq):
715710
ordinal = other.ordinal
716711
freq = other.freq
717712
else:
@@ -752,7 +747,7 @@ cdef class Period(object):
752747
msg = "Value must be Period, string, integer, or datetime"
753748
raise ValueError(msg)
754749

755-
base, mult = _gfc(freq)
750+
base, mult = frequencies.get_freq_code(freq)
756751

757752
if ordinal is None:
758753
self.ordinal = get_period_ordinal(dt.year, dt.month, dt.day,
@@ -861,8 +856,8 @@ cdef class Period(object):
861856
resampled : Period
862857
"""
863858
how = _validate_end_alias(how)
864-
base1, mult1 = _gfc(self.freq)
865-
base2, mult2 = _gfc(freq)
859+
base1, mult1 = frequencies.get_freq_code(self.freq)
860+
base2, mult2 = frequencies.get_freq_code(freq)
866861

867862
if self.ordinal == tslib.iNaT:
868863
ordinal = self.ordinal
@@ -912,17 +907,17 @@ cdef class Period(object):
912907
how = _validate_end_alias(how)
913908

914909
if freq is None:
915-
base, mult = _gfc(self.freq)
910+
base, mult = frequencies.get_freq_code(self.freq)
916911
freq = frequencies.get_to_timestamp_base(base)
917912

918-
base, mult = _gfc(freq)
913+
base, mult = frequencies.get_freq_code(freq)
919914
val = self.asfreq(freq, how)
920915

921916
dt64 = period_ordinal_to_dt64(val.ordinal, base)
922917
return Timestamp(dt64, tz=tz)
923918

924919
cdef _field(self, alias):
925-
base, mult = _gfc(self.freq)
920+
base, mult = frequencies.get_freq_code(self.freq)
926921
return get_period_field(alias, self.ordinal, base)
927922

928923
property year:
@@ -984,7 +979,7 @@ cdef class Period(object):
984979
return self.freq.freqstr
985980

986981
def __repr__(self):
987-
base, mult = _gfc(self.freq)
982+
base, mult = frequencies.get_freq_code(self.freq)
988983
formatted = period_format(self.ordinal, base)
989984
return "Period('%s', '%s')" % (formatted, self.freqstr)
990985

@@ -995,7 +990,7 @@ cdef class Period(object):
995990
Invoked by unicode(df) in py2 only. Yields a Unicode String in both
996991
py2/py3.
997992
"""
998-
base, mult = _gfc(self.freq)
993+
base, mult = frequencies.get_freq_code(self.freq)
999994
formatted = period_format(self.ordinal, base)
1000995
value = ("%s" % formatted)
1001996
return value
@@ -1145,13 +1140,13 @@ cdef class Period(object):
11451140
>>> a.strftime('%b. %d, %Y was a %A')
11461141
'Jan. 01, 2001 was a Monday'
11471142
"""
1148-
base, mult = _gfc(self.freq)
1143+
base, mult = frequencies.get_freq_code(self.freq)
11491144
return period_format(self.ordinal, base, fmt)
11501145

11511146

11521147
def _ordinal_from_fields(year, month, quarter, day, hour, minute,
11531148
second, freq):
1154-
base, mult = _gfc(freq)
1149+
base, mult = frequencies.get_freq_code(freq)
11551150
if quarter is not None:
11561151
year, month = _quarter_to_myear(year, quarter, freq)
11571152

pandas/tseries/constants.py

-7
This file was deleted.

pandas/tseries/frequencies.py

+14-7
Original file line numberDiff line numberDiff line change
@@ -14,7 +14,6 @@
1414
import pandas.core.common as com
1515
import pandas.lib as lib
1616
import pandas.tslib as tslib
17-
from pandas.tseries import constants
1817
from pandas.tslib import Timedelta
1918
from pytz import AmbiguousTimeError
2019

@@ -34,16 +33,24 @@ class FreqGroup(object):
3433
FR_NS = 12000
3534

3635

36+
US_RESO = 0
37+
MS_RESO = 1
38+
S_RESO = 2
39+
T_RESO = 3
40+
H_RESO = 4
41+
D_RESO = 5
42+
43+
3744
class Resolution(object):
3845

3946
# defined in period.pyx
4047
# note that these are different from freq codes
41-
RESO_US = constants.US_RESO
42-
RESO_MS = constants.MS_RESO
43-
RESO_SEC = constants.S_RESO
44-
RESO_MIN = constants.T_RESO
45-
RESO_HR = constants.H_RESO
46-
RESO_DAY = constants.D_RESO
48+
RESO_US = US_RESO
49+
RESO_MS = MS_RESO
50+
RESO_SEC = S_RESO
51+
RESO_MIN = T_RESO
52+
RESO_HR = H_RESO
53+
RESO_DAY = D_RESO
4754

4855
_reso_str_map = {
4956
RESO_US: 'microsecond',

0 commit comments

Comments
 (0)