Uh oh!
There was an error while loading. Please reload this page.
ARROW-16653: [R] All formats are supported with the lubridate parse_date_time binding - #13506
Conversation
9dde78a to
7cb9c69Comparerok
commented
Jul 22, 2022
paleolimbot
left a comment
There was a problem hiding this comment.
Just tiny things...looks great!
Uh oh!
There was an error while loading. Please reload this page.
Uh oh!
There was an error while loading. Please reload this page.
Uh oh!
There was an error while loading. Please reload this page.
I think the scope of the Jira is to also test/ check/ make sure all formats are supported with |
rok
commented
Jul 22, 2022
dragosmg
commented
Jul 22, 2022
Could you add a test/ tests for |
LGTM once we have a test with the additional formats we now support & the CI passes. Thanks for your work on lubridate, @rok! 🙏🏻 |
Uh oh!
There was an error while loading. Please reload this page.
Once we remove the guardrails, it would be good to test |
paleolimbot
commented
Jul 22, 2022
@dragosmg Can you create a follow-up ticket for that? |
I can, but @rok might be close to a unit test for those additional formats. If he is, I'd rather we have the tests in this PR as they go together. |
dragosmg
commented
Jul 22, 2022
to clarify, that test would be nice to have, but it doesn't mean that without it the features aren't tested. ultimately, |
rok
commented
Jul 22, 2022
👍 |
Uh oh!
There was an error while loading. Please reload this page.
9257a41 to
ee856baCompareUh oh!
There was an error while loading. Please reload this page.
Uh oh!
There was an error while loading. Please reload this page.
There was a problem hiding this comment.
Thanks for your work. I have some minor comments, and a larger concern. I am not convinced the build_formats() now works correctly:
# all the formatting characters should be supported
build_formats("wIpz")
#> Error: "wIpz" `orders` not supported in Arrow| supported_passed_orders <- intersect(orders, supported_orders) | ||
| formats_list <- map(orders, build_format_from_order) | ||
| formats_length <- map(map(formats_list, nchar), max) | ||
| invalid_orders <- formats_length < 6 |
There was a problem hiding this comment.
I think adding some comments here would help for our future selves. For example, on why you think 6 is a good threshold.
There was a problem hiding this comment.
It seems unlikely that < 6 characters is the only threshold for an invalid order?
There was a problem hiding this comment.
I'm not exactly sure how to check if an order is valid as it really comes down to strptime implementation used. I'm switching to detecting if no valid formats are present or not and will check what lubridate does.
There was a problem hiding this comment.
Lubridate checks against an example of it's input, which is something we can't/won't do.
I'd say erroring on invalid formats and returning NA on unsuccessful parsing would be the thing to do.
There was a problem hiding this comment.
Agree. That sounds like a good plan
Uh oh!
There was an error while loading. Please reload this page.
Uh oh!
There was an error while loading. Please reload this page.
paleolimbot
left a comment
There was a problem hiding this comment.
I comment everywhere I saw some R code that looked out of place...in general I have little idea what's going on here and I think some comments would help.
Uh oh!
There was an error while loading. Please reload this page.
| supported_passed_orders <- intersect(orders, supported_orders) | ||
| formats_list <- map(orders, build_format_from_order) | ||
| formats_length <- map(map(formats_list, nchar), max) | ||
| invalid_orders <- formats_length < 6 |
There was a problem hiding this comment.
It seems unlikely that < 6 characters is the only threshold for an invalid order?
Uh oh!
There was an error while loading. Please reload this page.
Uh oh!
There was an error while loading. Please reload this page.
Uh oh!
There was an error while loading. Please reload this page.
Co-authored-by: Dewey Dunnington <dewey@fishandwhistle.net>
b68ad44 to
1cc88c9Comparerok
commented
Jul 28, 2022
Added this to tests. |
rok
commented
Jul 28, 2022
Thanks for the reviews @dragosmg@paleolimbot ! |
rok
commented
Jul 28, 2022
@github-actions crossbow submit -g r |
Revision: 17b46ab Submitted crossbow builds: ursacomputing/crossbow @ actions-156d8fedd0 |
paleolimbot
left a comment
There was a problem hiding this comment.
With these changes it's much more readable...thank you!
paleolimbot
commented
Jul 29, 2022
(The sanitizer error was fixed already and valgrind will likely fail when it completes but that is a separate issue) |
rok
commented
Jul 29, 2022
Thank you for fast reviews and feedback @dragosmg and @paleolimbot ! |
ursabot
commented
Jul 29, 2022
Benchmark runs are scheduled for baseline = f645ffa and contender = 3e87c66. 3e87c66 is a master commit associated with this PR. Results will be available as each benchmark for each run completes. |
…date_time` binding (#13506) This is to resolve [ARROW-16653](https://issues.apache.org/jira/browse/ARROW-16653). Please note the intent here is to map out currently available formats via a new test. That is to support [ARROW-16395](https://issues.apache.org/jira/browse/ARROW-16395) which will add `ymd_hms() ymd_hm() ymd_h() dmy_hms() dmy_hm() dmy_h() mdy_hms() mdy_hm() mdy_h() ydm_hms() ydm_hm() ydm_h()`. Currently most [lubridate supported flags](https://lubridate.tidyverse.org/reference/parse_date_time.html#details) are available and this adds a test. Remaining are `%q` and `%Op` that we don't need to resolve [ARROW-16395](https://issues.apache.org/jira/browse/ARROW-16395). We could open a ticket for adding support for the two remaining flags to C++ `strptime` or wait for users to request them. Lead-authored-by: Rok <rok@mihevc.org> Co-authored-by: Rok Mihevc <rok@mihevc.org> Signed-off-by: Dewey Dunnington <dewey@fishandwhistle.net>
Changes introduced by [ARROW-16653](#13506) were not written up by NEWS.md. Lead-authored-by: Rok <rok@mihevc.org> Co-authored-by: Dewey Dunnington <dewey@voltrondata.com> Co-authored-by: Rok Mihevc <rok@mihevc.org> Signed-off-by: Dewey Dunnington <dewey@voltrondata.com>
…Hub issue numbers (#34260) Rewrite the Jira issue numbers to the GitHub issue numbers, so that the GitHub issue numbers are automatically linked to the issues by pkgdown's auto-linking feature. Issue numbers have been rewritten based on the following correspondence. Also, the pkgdown settings have been changed and updated to link to GitHub. I generated the Changelog page using the `pkgdown::build_news()` function and verified that the links work correctly. --- ARROW-6338#5198ARROW-6364#5201ARROW-6323#5169ARROW-6278#5141ARROW-6360#5329ARROW-6533#5450ARROW-6348#5223ARROW-6337#5399ARROW-10850#9128ARROW-10624#9092ARROW-10386#8549ARROW-6994#23308ARROW-12774#10320ARROW-12670#10287ARROW-16828#13484ARROW-14989#13482ARROW-16977#13514ARROW-13404#10999ARROW-16887#13601ARROW-15906#13206ARROW-15280#13171ARROW-16144#13183ARROW-16511#13105ARROW-16085#13088ARROW-16715#13555ARROW-16268#13550ARROW-16700#13518ARROW-16807#13583ARROW-16871#13517ARROW-16415#13190ARROW-14821#12154ARROW-16439#13174ARROW-16394#13118ARROW-16516#13163ARROW-16395#13627ARROW-14848#12589ARROW-16407#13196ARROW-16653#13506ARROW-14575#13160ARROW-15271#13170ARROW-16703#13650ARROW-16444#13397ARROW-15016#13541ARROW-16776#13563ARROW-15622#13090ARROW-18131#14484ARROW-18305#14581ARROW-18285#14615 * Closes: #33631 Authored-by: SHIMA Tatsuya <ts1s1andn@gmail.com> Signed-off-by: Sutou Kouhei <kou@clear-code.com>
This is to resolve ARROW-16653.
Please note the intent here is to map out currently available formats via a new test. That is to support ARROW-16395 which will add
ymd_hms() ymd_hm() ymd_h() dmy_hms() dmy_hm() dmy_h() mdy_hms() mdy_hm() mdy_h() ydm_hms() ydm_hm() ydm_h().Currently most lubridate supported flags are available and this adds a test. Remaining are
%qand%Opthat we don't need to resolve ARROW-16395. We could open a ticket for adding support for the two remaining flags to C++strptimeor wait for users to request them.