Skip to content

REF: add to_offset to tslibs namespace #34538

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Merged
merged 1 commit into from
Jun 3, 2020
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 2 additions & 0 deletions pandas/_libs/tslibs/__init__.py
Original file line number Diff line number Diff line change
Expand Up @@ -14,12 +14,14 @@
"ints_to_pytimedelta",
"Timestamp",
"tz_convert_single",
"to_offset",
]


from .conversion import localize_pydatetime
from .nattype import NaT, NaTType, iNaT, is_null_datetimelike, nat_strings
from .np_datetime import OutOfBoundsDatetime
from .offsets import to_offset
from .period import IncompatibleFrequency, Period
from .resolution import Resolution
from .timedeltas import Timedelta, delta_to_nanoseconds, ints_to_pytimedelta
Expand Down
9 changes: 5 additions & 4 deletions pandas/core/arrays/datetimelike.py
Original file line number Diff line number Diff line change
Expand Up @@ -14,6 +14,7 @@
Timestamp,
delta_to_nanoseconds,
iNaT,
to_offset,
)
from pandas._libs.tslibs.timestamps import (
RoundTo,
Expand Down Expand Up @@ -427,7 +428,7 @@ def _with_freq(self, freq):
else:
# As an internal method, we can ensure this assertion always holds
assert freq == "infer"
freq = frequencies.to_offset(self.inferred_freq)
freq = to_offset(self.inferred_freq)

arr = self.view()
arr._freq = freq
Expand Down Expand Up @@ -1081,7 +1082,7 @@ def freq(self):
@freq.setter
def freq(self, value):
if value is not None:
value = frequencies.to_offset(value)
value = to_offset(value)
self._validate_frequency(self, value)

self._freq = value
Expand Down Expand Up @@ -1367,7 +1368,7 @@ def _time_shift(self, periods, freq=None):
"""
if freq is not None and freq != self.freq:
if isinstance(freq, str):
freq = frequencies.to_offset(freq)
freq = to_offset(freq)
offset = periods * freq
result = self + offset
return result
Expand Down Expand Up @@ -1779,7 +1780,7 @@ def maybe_infer_freq(freq):
if not isinstance(freq, DateOffset):
# if a passed freq is None, don't infer automatically
if freq != "infer":
freq = frequencies.to_offset(freq)
freq = to_offset(freq)
else:
freq_infer = True
freq = None
Expand Down
3 changes: 2 additions & 1 deletion pandas/core/arrays/datetimes.py
Original file line number Diff line number Diff line change
Expand Up @@ -15,6 +15,7 @@
iNaT,
resolution as libresolution,
timezones,
to_offset,
tzconversion,
)
from pandas.errors import PerformanceWarning
Expand Down Expand Up @@ -46,7 +47,7 @@
from pandas.core.arrays._ranges import generate_regular_range
import pandas.core.common as com

from pandas.tseries.frequencies import get_period_alias, to_offset
from pandas.tseries.frequencies import get_period_alias
from pandas.tseries.offsets import BDay, Day, Tick

_midnight = time(0, 0)
Expand Down
7 changes: 4 additions & 3 deletions pandas/core/arrays/period.py
Original file line number Diff line number Diff line change
Expand Up @@ -7,9 +7,12 @@
from pandas._libs.tslibs import (
NaT,
NaTType,
Timedelta,
delta_to_nanoseconds,
frequencies as libfrequencies,
iNaT,
period as libperiod,
to_offset,
)
from pandas._libs.tslibs.fields import isleapyear_arr
from pandas._libs.tslibs.offsets import Tick, delta_to_tick
Expand All @@ -20,7 +23,6 @@
get_period_field_arr,
period_asfreq_arr,
)
from pandas._libs.tslibs.timedeltas import Timedelta, delta_to_nanoseconds
from pandas._typing import AnyArrayLike
from pandas.util._decorators import cache_readonly

Expand All @@ -45,7 +47,6 @@
from pandas.core.arrays import datetimelike as dtl
import pandas.core.common as com

from pandas.tseries import frequencies
from pandas.tseries.offsets import DateOffset


Expand Down Expand Up @@ -902,7 +903,7 @@ def validate_dtype_freq(dtype, freq):
IncompatibleFrequency : mismatch between dtype and freq
"""
if freq is not None:
freq = frequencies.to_offset(freq)
freq = to_offset(freq)

if dtype is not None:
dtype = pandas_dtype(dtype)
Expand Down
3 changes: 1 addition & 2 deletions pandas/core/arrays/timedeltas.py
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,7 @@
import numpy as np

from pandas._libs import lib, tslibs
from pandas._libs.tslibs import NaT, Period, Timedelta, Timestamp, iNaT
from pandas._libs.tslibs import NaT, Period, Timedelta, Timestamp, iNaT, to_offset
from pandas._libs.tslibs.conversion import precision_from_unit
from pandas._libs.tslibs.fields import get_timedelta_field
from pandas._libs.tslibs.timedeltas import array_to_timedelta64, parse_timedelta_unit
Expand Down Expand Up @@ -35,7 +35,6 @@
from pandas.core.construction import extract_array
from pandas.core.ops.common import unpack_zerodim_and_defer

from pandas.tseries.frequencies import to_offset
from pandas.tseries.offsets import Tick


Expand Down
3 changes: 1 addition & 2 deletions pandas/core/dtypes/dtypes.py
Original file line number Diff line number Diff line change
Expand Up @@ -20,7 +20,7 @@
import pytz

from pandas._libs.interval import Interval
from pandas._libs.tslibs import NaT, Period, Timestamp, timezones
from pandas._libs.tslibs import NaT, Period, Timestamp, timezones, to_offset
from pandas._libs.tslibs.offsets import BaseOffset
from pandas._typing import DtypeObj, Ordered

Expand Down Expand Up @@ -925,7 +925,6 @@ def _parse_dtype_strict(cls, freq):
m = cls._match.search(freq)
if m is not None:
freq = m.group("freq")
from pandas.tseries.frequencies import to_offset

freq = to_offset(freq)
if freq is not None:
Expand Down
4 changes: 2 additions & 2 deletions pandas/core/generic.py
Original file line number Diff line number Diff line change
Expand Up @@ -30,7 +30,8 @@

from pandas._config import config

from pandas._libs import Timestamp, lib
from pandas._libs import lib
from pandas._libs.tslibs import Timestamp, to_offset
from pandas._typing import (
Axis,
FilePathOrBuffer,
Expand Down Expand Up @@ -106,7 +107,6 @@
from pandas.io.formats import format as fmt
from pandas.io.formats.format import DataFrameFormatter, format_percentiles
from pandas.io.formats.printing import pprint_thing
from pandas.tseries.frequencies import to_offset
from pandas.tseries.offsets import Tick

if TYPE_CHECKING:
Expand Down
4 changes: 1 addition & 3 deletions pandas/core/indexes/datetimes.py
Original file line number Diff line number Diff line change
Expand Up @@ -6,7 +6,7 @@
import numpy as np

from pandas._libs import NaT, Period, Timestamp, index as libindex, lib, tslib
from pandas._libs.tslibs import Resolution, fields, parsing, timezones
from pandas._libs.tslibs import Resolution, fields, parsing, timezones, to_offset
from pandas._libs.tslibs.frequencies import get_freq_group
from pandas._libs.tslibs.offsets import prefix_mapping
from pandas._typing import DtypeObj, Label
Expand All @@ -30,8 +30,6 @@
from pandas.core.indexes.extension import inherit_names
from pandas.core.tools.times import to_time

from pandas.tseries.frequencies import to_offset


def _new_DatetimeIndex(cls, d):
"""
Expand Down
4 changes: 2 additions & 2 deletions pandas/core/indexes/interval.py
Original file line number Diff line number Diff line change
Expand Up @@ -7,8 +7,9 @@

from pandas._config import get_option

from pandas._libs import Timedelta, Timestamp, lib
from pandas._libs import lib
from pandas._libs.interval import Interval, IntervalMixin, IntervalTree
from pandas._libs.tslibs import Timedelta, Timestamp, to_offset
from pandas._typing import AnyArrayLike, Label
from pandas.util._decorators import Appender, Substitution, cache_readonly
from pandas.util._exceptions import rewrite_exception
Expand Down Expand Up @@ -55,7 +56,6 @@
from pandas.core.indexes.timedeltas import TimedeltaIndex, timedelta_range
from pandas.core.ops import get_op_result_name

from pandas.tseries.frequencies import to_offset
from pandas.tseries.offsets import DateOffset

_VALID_CLOSED = {"left", "right", "both", "neither"}
Expand Down
5 changes: 2 additions & 3 deletions pandas/core/indexes/timedeltas.py
Original file line number Diff line number Diff line change
@@ -1,6 +1,7 @@
""" implement the TimedeltaIndex """

from pandas._libs import Timedelta, index as libindex, lib
from pandas._libs import index as libindex, lib
from pandas._libs.tslibs import Timedelta, to_offset
from pandas._typing import DtypeObj, Label
from pandas.util._decorators import doc

Expand All @@ -24,8 +25,6 @@
)
from pandas.core.indexes.extension import inherit_names

from pandas.tseries.frequencies import to_offset


@inherit_names(
["__neg__", "__pos__", "__abs__", "total_seconds", "round", "floor", "ceil"]
Expand Down
12 changes: 9 additions & 3 deletions pandas/core/resample.py
Original file line number Diff line number Diff line change
Expand Up @@ -6,8 +6,14 @@
import numpy as np

from pandas._libs import lib
from pandas._libs.tslibs import NaT, Period, Timedelta, Timestamp
from pandas._libs.tslibs.period import IncompatibleFrequency
from pandas._libs.tslibs import (
IncompatibleFrequency,
NaT,
Period,
Timedelta,
Timestamp,
to_offset,
)
from pandas._typing import TimedeltaConvertibleTypes, TimestampConvertibleTypes
from pandas.compat.numpy import function as nv
from pandas.errors import AbstractMethodError
Expand All @@ -28,7 +34,7 @@
from pandas.core.indexes.period import PeriodIndex, period_range
from pandas.core.indexes.timedeltas import TimedeltaIndex, timedelta_range

from pandas.tseries.frequencies import is_subperiod, is_superperiod, to_offset
from pandas.tseries.frequencies import is_subperiod, is_superperiod
from pandas.tseries.offsets import DateOffset, Day, Nano, Tick

_shared_docs_kwargs: Dict[str, str] = dict()
Expand Down
3 changes: 1 addition & 2 deletions pandas/core/window/rolling.py
Original file line number Diff line number Diff line change
Expand Up @@ -10,6 +10,7 @@

import numpy as np

from pandas._libs.tslibs import to_offset
import pandas._libs.window.aggregations as window_aggregations
from pandas._typing import Axis, FrameOrSeries, Scalar
from pandas.compat._optional import import_optional_dependency
Expand Down Expand Up @@ -1977,8 +1978,6 @@ def _validate_freq(self):
"""
Validate & return window frequency.
"""
from pandas.tseries.frequencies import to_offset

try:
return to_offset(self.window)
except (TypeError, ValueError) as err:
Expand Down
9 changes: 2 additions & 7 deletions pandas/plotting/_matplotlib/timeseries.py
Original file line number Diff line number Diff line change
Expand Up @@ -5,8 +5,8 @@

import numpy as np

from pandas._libs.tslibs import Period, to_offset
from pandas._libs.tslibs.frequencies import FreqGroup, base_and_stride, get_freq_code
from pandas._libs.tslibs.period import Period

from pandas.core.dtypes.generic import (
ABCDatetimeIndex,
Expand All @@ -20,12 +20,7 @@
TimeSeries_DateLocator,
TimeSeries_TimedeltaFormatter,
)
from pandas.tseries.frequencies import (
get_period_alias,
is_subperiod,
is_superperiod,
to_offset,
)
from pandas.tseries.frequencies import get_period_alias, is_subperiod, is_superperiod
from pandas.tseries.offsets import DateOffset

if TYPE_CHECKING:
Expand Down
6 changes: 2 additions & 4 deletions pandas/tests/arithmetic/test_period.py
Original file line number Diff line number Diff line change
Expand Up @@ -6,17 +6,15 @@
import numpy as np
import pytest

from pandas._libs.tslibs.period import IncompatibleFrequency
from pandas._libs.tslibs import IncompatibleFrequency, Period, Timestamp, to_offset
from pandas.errors import PerformanceWarning

import pandas as pd
from pandas import Period, PeriodIndex, Series, TimedeltaIndex, Timestamp, period_range
from pandas import PeriodIndex, Series, TimedeltaIndex, period_range
import pandas._testing as tm
from pandas.core import ops
from pandas.core.arrays import TimedeltaArray

from pandas.tseries.frequencies import to_offset

from .common import assert_invalid_comparison

# ------------------------------------------------------------------
Expand Down
4 changes: 1 addition & 3 deletions pandas/tests/indexes/datetimes/test_scalar_compat.py
Original file line number Diff line number Diff line change
Expand Up @@ -6,14 +6,12 @@
import numpy as np
import pytest

from pandas._libs.tslibs.np_datetime import OutOfBoundsDatetime
from pandas._libs.tslibs import OutOfBoundsDatetime, to_offset

import pandas as pd
from pandas import DatetimeIndex, Timestamp, date_range
import pandas._testing as tm

from pandas.tseries.frequencies import to_offset


class TestDatetimeIndexOps:
def test_dti_time(self):
Expand Down
12 changes: 7 additions & 5 deletions pandas/tests/scalar/timestamp/test_arithmetic.py
Original file line number Diff line number Diff line change
Expand Up @@ -3,14 +3,16 @@
import numpy as np
import pytest

from pandas.errors import OutOfBoundsDatetime
from pandas._libs.tslibs import (
OutOfBoundsDatetime,
Timedelta,
Timestamp,
offsets,
to_offset,
)

from pandas import Timedelta, Timestamp
import pandas._testing as tm

from pandas.tseries import offsets
from pandas.tseries.frequencies import to_offset


class TestTimestampArithmetic:
def test_overflow_offset(self):
Expand Down
5 changes: 1 addition & 4 deletions pandas/tests/scalar/timestamp/test_unary_ops.py
Original file line number Diff line number Diff line change
Expand Up @@ -5,15 +5,12 @@
import pytz
from pytz import utc

from pandas._libs.tslibs import conversion
from pandas._libs.tslibs import NaT, Timestamp, conversion, to_offset
from pandas._libs.tslibs.frequencies import INVALID_FREQ_ERR_MSG
import pandas.util._test_decorators as td

from pandas import NaT, Timestamp
import pandas._testing as tm

from pandas.tseries.frequencies import to_offset


class TestTimestampUnaryOps:

Expand Down
2 changes: 1 addition & 1 deletion pandas/tests/tseries/frequencies/test_freq_code.py
Original file line number Diff line number Diff line change
@@ -1,5 +1,6 @@
import pytest

from pandas._libs.tslibs import to_offset
from pandas._libs.tslibs.frequencies import (
FreqGroup,
_attrname_to_abbrevs,
Expand All @@ -10,7 +11,6 @@
)
from pandas._libs.tslibs.resolution import Resolution as _reso

from pandas.tseries.frequencies import to_offset
import pandas.tseries.offsets as offsets


Expand Down
Loading