This commit is contained in:
2025-09-07 22:09:54 +02:00
parent e1b817252c
commit 2fc0d000b6
7796 changed files with 2159515 additions and 933 deletions

View File

@ -0,0 +1,30 @@
from __future__ import annotations
from typing import TYPE_CHECKING
from narwhals._duckdb.utils import F, lit
from narwhals._sql.expr_str import SQLExprStringNamespace
from narwhals._utils import not_implemented
if TYPE_CHECKING:
from narwhals._duckdb.expr import DuckDBExpr
class DuckDBExprStringNamespace(SQLExprStringNamespace["DuckDBExpr"]):
def to_datetime(self, format: str | None) -> DuckDBExpr:
if format is None:
msg = "Cannot infer format with DuckDB backend, please specify `format` explicitly."
raise NotImplementedError(msg)
return self.compliant._with_elementwise(
lambda expr: F("strptime", expr, lit(format))
)
def to_date(self, format: str | None) -> DuckDBExpr:
if format is not None:
return self.to_datetime(format=format).dt.date()
compliant_expr = self.compliant
return compliant_expr.cast(compliant_expr._version.dtypes.Date())
replace = not_implemented()