Source code for akimbo.datetimes

import pyarrow.compute as pc

from akimbo.apply_tree import dec
from akimbo.mixin import EagerAccessor, LazyAccessor


def match(*layouts):
    return layouts[0].is_leaf and layouts[0].dtype.kind == "M"


methods = [
    "ceil_temporal",
    "day",
    "day_of_week",
    "day_of_year",
    "day_time_interval_between",
    "days_between",
    "floor_temporal",
    "hour",
    "hours_between",
    "is_leap_year",
    "iso_calendar",
    "iso_week",
    "iso_year",
    "microsecond",
    "microseconds_between",
    "millisecond",
    "milliseconds_between",
    "minute",
    "minutes_between",
    "month",
    "month_day_nano_interval_between",
    "month_interval_between",
    "nanosecond",
    "nanoseconds_between",
    "quarter",
    "quarters_between",
    "reound_temporal",
    "second",
    "seconds_between",
    "strftime",
    "subsecond",
    "us_week",
    "us_year",
    "week",
    "weeks_between",
    "year",
    "year_month_day",
    "years_between",
]


[docs] class DatetimeAccessor: def __getattr__(self, item): if item in methods: func = getattr(pc, item) else: raise AttributeError return dec(func, match=match, inmode="arrow") def __dir__(self): return methods
EagerAccessor.register_accessor("dt", DatetimeAccessor) LazyAccessor.register_accessor("dt", DatetimeAccessor)