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]
