ntjohnson1 commented on PR #1424: URL: https://github.com/apache/datafusion-python/pull/1424#issuecomment-4060735652
My network connection on the plane is bad so I can't open the PRs for better discussion. Those missing functions are new since I branched to start this work. The groupings in these PRs were mostly just to make it less painful to review. My preference would be to land them if they are sufficient quality then I'll make a final pass over everything to do any final cleanup for consistency. On Fri, Mar 13, 2026, 10:36 AM kosiew ***@***.***> wrote: > ***@***.**** commented on this pull request. > > @ntjohnson1 <https://github.com/ntjohnson1> > Thanks for your contribution > ------------------------------ > > In python/datafusion/functions.py > <https://github.com/apache/datafusion-python/pull/1424#discussion_r2930346270> > : > > > @@ -1393,7 +1584,20 @@ def named_struct(name_pairs: list[tuple[str, Expr]]) -> Expr: > > > def from_unixtime(arg: Expr) -> Expr: > - """Converts an integer to RFC3339 timestamp format string.""" > + """Converts an integer to RFC3339 timestamp format string. > + > + Examples: > + --------- > + >>> ctx = dfn.SessionContext() > + >>> df = ctx.from_pydict({"a": [0]}) > + >>> result = df.select( > + ... dfn.functions.from_unixtime( > + ... dfn.col("a") > + ... ).alias("ts") > + ... ) > + >>> str(result.collect_column("ts")[0].as_py()) > + '1970-01-01 00:00:00' > + """ > return Expr(f.from_unixtime(arg.expr)) > > > The PR title is Add docstring examples for scalar temporal functions, but > to_date, to_time, and to_local_time still have no examples. Since those > are public temporal wrappers in the same section, this feels incomplete. > ------------------------------ > > In python/datafusion/functions.py > <https://github.com/apache/datafusion-python/pull/1424#discussion_r2930361375> > : > > > """ > return date_part(part, date) > > > def date_part(part: Expr, date: Expr) -> Expr: > - """Extracts a subfield from the date.""" > + """Extracts a subfield from the date. > + > + Examples: > + --------- > + >>> ctx = dfn.SessionContext() > + >>> df = ctx.from_pydict({"a": ["2021-07-15T00:00:00"]}) > + >>> df = df.select(dfn.functions.to_timestamp(dfn.col("a")).alias("a")) > + >>> result = df.select( > + ... dfn.functions.date_part(dfn.lit("year"), dfn.col("a")).alias("y")) > + >>> result.collect_column("y")[0].as_py() > + 2021 > + """ > return Expr(f.date_part(part.expr, date.expr)) > > > def extract(part: Expr, date: Expr) -> Expr: > """Extracts a subfield from the date. > > This is an alias for :py:func:`date_part`. > > datepart, extract, and datetrunc are aliases, but each now carries its > own full doctest. > > I think setting up one example would risk of docs drift between the > canonical function and its alias. > ------------------------------ > > In python/datafusion/functions.py > <https://github.com/apache/datafusion-python/pull/1424#discussion_r2930373855> > : > > > """ > return date_trunc(part, date) > > > def date_bin(stride: Expr, source: Expr, origin: Expr) -> Expr: > - """Coerces an arbitrary timestamp to the start of the nearest specified interval.""" > + """Coerces an arbitrary timestamp to the start of the nearest specified interval. > + > + Examples: > + --------- > + >>> ctx = dfn.SessionContext() > + >>> result = ctx.sql( > + ... "SELECT date_bin(interval '1 day'," > > It would be more consistent to use > dfn.functions.date_bin > here > > — > Reply to this email directly, view it on GitHub > <https://github.com/apache/datafusion-python/pull/1424#pullrequestreview-3943038060>, > or unsubscribe > <https://github.com/notifications/unsubscribe-auth/AF4LYOT6XUTRVM3M33LXMP34QPQC3AVCNFSM6AAAAACWOQ54KGVHI2DSMVQWIX3LMV43YUDVNRWFEZLROVSXG5CSMV3GSZLXHMZTSNBTGAZTQMBWGA> > . > You are receiving this because you were mentioned.Message ID: > ***@***.***> > -- This is an automated message from the Apache Git Service. To respond to the message, please log on to GitHub and use the URL above to go to the specific comment. To unsubscribe, e-mail: [email protected] For queries about this service, please contact Infrastructure at: [email protected] --------------------------------------------------------------------- To unsubscribe, e-mail: [email protected] For additional commands, e-mail: [email protected]
