From c4532950fbaf13f5859a45cf667300b993cdc68d Mon Sep 17 00:00:00 2001 From: jbrockmendel Date: Sun, 8 Sep 2019 10:37:20 -0700 Subject: [PATCH 1/2] CLN: avoid bare except in libfrequencies --- pandas/_libs/tslibs/frequencies.pyx | 20 ++++++++++---------- 1 file changed, 10 insertions(+), 10 deletions(-) diff --git a/pandas/_libs/tslibs/frequencies.pyx b/pandas/_libs/tslibs/frequencies.pyx index f2dcd37b191ed..2cea2220cf976 100644 --- a/pandas/_libs/tslibs/frequencies.pyx +++ b/pandas/_libs/tslibs/frequencies.pyx @@ -156,16 +156,16 @@ cpdef get_freq_code(freqstr): if is_integer_object(freqstr[0]) and is_integer_object(freqstr[1]): # e.g., freqstr = (2000, 1) return freqstr + elif is_integer_object(freqstr[0]): + # Note: passing freqstr[1] below will raise TypeError if that + # is not a str + code = _period_str_to_code(freqstr[1]) + stride = freqstr[0] + return code, stride else: # e.g., freqstr = ('T', 5) - try: - code = _period_str_to_code(freqstr[0]) - stride = freqstr[1] - except: - if is_integer_object(freqstr[1]): - raise - code = _period_str_to_code(freqstr[1]) - stride = freqstr[0] + code = _period_str_to_code(freqstr[0]) + stride = freqstr[1] return code, stride if is_integer_object(freqstr): @@ -177,7 +177,7 @@ cpdef get_freq_code(freqstr): return code, stride -cpdef _base_and_stride(freqstr): +cpdef _base_and_stride(str freqstr): """ Return base freq and stride info from string representation @@ -207,7 +207,7 @@ cpdef _base_and_stride(freqstr): return base, stride -cpdef _period_str_to_code(freqstr): +cpdef _period_str_to_code(str freqstr): freqstr = _lite_rule_alias.get(freqstr, freqstr) if freqstr not in _dont_uppercase: From 89c19c7971c08797e39d30f4b55367531b96e363 Mon Sep 17 00:00:00 2001 From: jbrockmendel Date: Sun, 8 Sep 2019 13:05:33 -0700 Subject: [PATCH 2/2] update docstring --- pandas/_libs/tslibs/frequencies.pyx | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/pandas/_libs/tslibs/frequencies.pyx b/pandas/_libs/tslibs/frequencies.pyx index 2cea2220cf976..b29c841896072 100644 --- a/pandas/_libs/tslibs/frequencies.pyx +++ b/pandas/_libs/tslibs/frequencies.pyx @@ -138,6 +138,10 @@ cpdef get_freq_code(freqstr): ------- return : tuple of base frequency code and stride (mult) + Raises + ------ + TypeError : if passed a tuple witth incorrect types + Examples -------- >>> get_freq_code('3D')