pearu opened a new pull request, #54662:
URL: https://github.com/apache/arrow/pull/54662

   ### Rationale for this change
   
   CSV columns typed as `time32` or `time64` are parsed only from the ISO-8601 
format, and `ConvertOptions::timestamp_parsers` applies only to timestamp 
columns, so other time formats need reading as a timestamp and a cast.
   
   ### What changes are included in this PR?
   
   - Time columns try `timestamp_parsers` after the ISO-8601 parser fails, and 
take the time of day of the parsed timestamp, as a cast from timestamp to time 
does. This also works for dates outside the range of the time unit's timestamps 
(e.g. year 9999 with nanoseconds).
   - With the ISO-8601 parser in `timestamp_parsers`, fractional seconds are 
kept, and the value is rejected if the time unit cannot represent them.
   - `strptime` parsers without a time directive are skipped, and ISO-8601 
values without a time of day are rejected, so that a date does not become 
midnight.
   - Type inference of time columns is unchanged and uses ISO-8601 only.
   
   This PR is the time part of #50146. It builds on #54661 (date columns) and 
its dependencies #54656, #54657 and #54659, which must land first. Only the 
last commit is new here.
   
   ### Are these changes tested?
   
   Yes, `Time32Conversion.UserDefinedParsers` and 
`Time64Conversion.UserDefinedParsers` in C++, and 
`test_times_with_timestamp_parsers` in Python.
   
   ### Are there any user-facing changes?
   
   Yes, `timestamp_parsers` now also applies to `time32`/`time64` columns given 
in `column_types`. This is documented in the C++ CSV docs and the 
`ConvertOptions` docstring.
   
   ### AI usage disclosure
   
   Developed with AI assistance (Claude Code): the implementation, tests, 
documentation and this description were AI-generated under my direction and 
reviewed line by line by me. I own and can debug these changes. No copyrighted 
material is included.
   
   * GitHub Issue: #54651
   


-- 
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]

Reply via email to