@@ -74,17 +74,19 @@ def to_ibis_values(x):
7474
7575
7676def cases (
77- * case_result_pairs : tuple [ir .BooleanValue , ir .Value ],
77+ first_branch : tuple [ir .BooleanValue , ir .Value ],
78+ * other_branches : tuple [ir .BooleanValue , ir .Value ],
7879 else_ : ir .Value | None = None ,
7980) -> ir .Value :
80- """A more concise way to write a case statement ."""
81+ """A compat wrapper to support ibis<10.0.0, which did not have ibis.cases() ."""
8182 try :
8283 # ibis.cases() was added in ibis 10.0.0
8384 cases = getattr (ibis , "cases" )
84- return cases (* case_result_pairs , else_ = else_ )
85+ return cases (first_branch , * other_branches , else_ = else_ )
8586 except AttributeError :
8687 builder = ibis .case ()
87- for case , result in case_result_pairs :
88+ builder = builder .when (* first_branch )
89+ for case , result in other_branches :
8890 builder = builder .when (case , result )
8991 return builder .else_ (else_ ).end ()
9092
@@ -140,17 +142,17 @@ def bind_one(
140142 return vals [0 ]
141143
142144
143- def ensure_ibis (
145+ def ensure_val (
144146 val : Any , type : str | dt .DataType | None = None
145147) -> ir .Value | ibis .Deferred :
146- """Ensure that `val` is an ibis expression ."""
147- if isinstance (val , ir . Expr ) or isinstance (val , ibis .Deferred ):
148+ """Ensure that `val` is an ibis Value or Deferred ."""
149+ if isinstance (val , ibis . Value ) or isinstance (val , ibis .Deferred ):
148150 return val
149151 return ibis .literal (val , type = type )
150152
151153
152154def get_name (x ) -> str :
153- """Find a suitable string representation of `x` to use as a blocker name ."""
155+ """Find a suitable string representation of `x`."""
154156 if isinstance (x , Deferred ):
155157 return x .__repr__ ()
156158 try :
@@ -303,8 +305,8 @@ def optional_import(pip_name: str):
303305 """
304306 Raises a more helpful ImportError when an optional dep is missing.
305307
306- with optional_import():
307- import some_optional_dep
308+ with optional_import("scikit-learn" ):
309+ import sklearn
308310 """
309311 try :
310312 yield
@@ -486,7 +488,9 @@ def _warn():
486488 f ()
487489
488490
489- def check_schemas_equal (a : ibis .Schema | ibis .Table , b : ibis .Schema | ibis .Table ):
491+ def check_schemas_equal (
492+ a : ibis .Schema | ibis .Table , b : ibis .Schema | ibis .Table , /
493+ ) -> None :
490494 if isinstance (a , ibis .Table ):
491495 a = a .schema ()
492496 if isinstance (b , ibis .Table ):
0 commit comments