Skip to content

Commit

Permalink
refactor(api)!: change as_interval unit argument to be positional…
Browse files Browse the repository at this point in the history
…-only
  • Loading branch information
cpcloud committed Feb 5, 2025
1 parent 926aa90 commit 885fa26
Show file tree
Hide file tree
Showing 4 changed files with 19 additions and 17 deletions.
2 changes: 1 addition & 1 deletion ibis/backends/clickhouse/__init__.py
Original file line number Diff line number Diff line change
Expand Up @@ -149,7 +149,7 @@ def do_connect(
Examples
--------
>>> import ibis
>>> client = ibis.clickhouse.connect()
>>> client = ibis.clickhouse.connect(user="ibis")
>>> client
<ibis.backends.clickhouse.Backend object at 0x...>
"""
Expand Down
4 changes: 2 additions & 2 deletions ibis/backends/tests/test_temporal.py
Original file line number Diff line number Diff line change
Expand Up @@ -556,7 +556,7 @@ def test_date_truncate(backend, alltypes, df, unit):
def test_integer_to_interval_timestamp(
backend, con, alltypes, df, unit, displacement_type
):
interval = alltypes.int_col.as_interval(unit=unit)
interval = alltypes.int_col.as_interval(unit)
expr = (alltypes.timestamp_col + interval).name("tmp")

def convert_to_offset(offset, displacement_type=displacement_type):
Expand Down Expand Up @@ -629,7 +629,7 @@ def convert_to_offset(offset, displacement_type=displacement_type):
@pytest.mark.notimpl(["datafusion", "druid"], raises=com.OperationNotDefinedError)
@pytest.mark.notimpl(["exasol"], raises=com.OperationNotDefinedError)
def test_integer_to_interval_date(backend, con, alltypes, df, unit):
interval = alltypes.int_col.as_interval(unit=unit)
interval = alltypes.int_col.as_interval(unit)
month = alltypes.date_string_col[:2]
day = alltypes.date_string_col[3:5]
year = alltypes.date_string_col[6:8]
Expand Down
4 changes: 3 additions & 1 deletion ibis/expr/types/numeric.py
Original file line number Diff line number Diff line change
Expand Up @@ -1454,6 +1454,7 @@ def as_timestamp(self, unit: Literal["s", "ms", "us"], /) -> ir.TimestampValue:
def as_interval(
self,
unit: Literal["Y", "M", "W", "D", "h", "m", "s", "ms", "us", "ns"] = "s",
/,
) -> ir.IntervalValue:
"""Convert an integer to an interval.
Expand Down Expand Up @@ -1518,8 +1519,9 @@ def to_timestamp(
def to_interval(
self,
unit: Literal["Y", "M", "W", "D", "h", "m", "s", "ms", "us", "ns"] = "s",
/,
) -> ir.IntervalValue:
return self.as_interval(unit=unit)
return self.as_interval(unit)

def convert_base(
self,
Expand Down
26 changes: 13 additions & 13 deletions ibis/tests/expr/test_temporal.py
Original file line number Diff line number Diff line change
Expand Up @@ -641,10 +641,10 @@ def test_integer_to_interval(column, unit, table):
@pytest.mark.parametrize(
"operands",
[
lambda t, u: (api.interval(3, unit=u), api.interval(2, unit=u)),
lambda t, u: (api.interval(3, unit=u), api.interval(3, unit=u)),
lambda t, u: (t.c.as_interval(unit=u), api.interval(2, unit=u)),
lambda t, u: (t.c.as_interval(unit=u), t.d.as_interval(unit=u)),
lambda _, u: (api.interval(3, unit=u), api.interval(2, unit=u)),
lambda _, u: (api.interval(3, unit=u), api.interval(3, unit=u)),
lambda t, u: (t.c.as_interval(u), api.interval(2, unit=u)),
lambda t, u: (t.c.as_interval(u), t.d.as_interval(u)),
],
)
@pytest.mark.parametrize(
Expand Down Expand Up @@ -688,15 +688,15 @@ def test_interval_comparisons(unit, operands, operator, table):
@pytest.mark.parametrize(
"interval",
[
lambda t: api.interval(years=4),
lambda t: api.interval(quarters=4),
lambda t: api.interval(months=3),
lambda t: api.interval(weeks=2),
lambda t: api.interval(days=1),
lambda t: t.c.as_interval(unit="Y"),
lambda t: t.c.as_interval(unit="M"),
lambda t: t.c.as_interval(unit="W"),
lambda t: t.c.as_interval(unit="D"),
lambda _: api.interval(years=4),
lambda _: api.interval(quarters=4),
lambda _: api.interval(months=3),
lambda _: api.interval(weeks=2),
lambda _: api.interval(days=1),
lambda t: t.c.as_interval("Y"),
lambda t: t.c.as_interval("M"),
lambda t: t.c.as_interval("W"),
lambda t: t.c.as_interval("D"),
],
ids=[
"years",
Expand Down

0 comments on commit 885fa26

Please sign in to comment.