Commits


Dragoș Moldovan-Grünfeld authored and Nic Crane committed 893faa741f3
ARROW-16255: [R] Reorganise the datetime bindings The purpose of this PR is to reorganise the datetime bindings. Why? * some are in files where one wouldn't think to look (e.g. in `R/dplyr-funcs-type.R`) * the are a bunch of somewhat scattered helper functions * some of the `register_bindings_...()` functions are too complex and trigger the cyclocomp lint What? * create a separate file for the datetime helpers, called `R/dplyr-datetime-helpers.R` * all bindings are in `dplyr-funcs-datetime.R` (with the exception of `leap_year`, which was moved to `expressions.R`) * all tests are in `test-dplyr-funcs-datetime.R` Results * cyclomatic complexity for the `dplyr-funcs-datetime.R` reduced to 21 (from 26) <details><summary>► More details</summary> <p> | Binding | Old registering function | New registering function | |--- |--- |--- | | `strptime` | `register_bindings_datetime()` | `register_bindings_datetime_utility()` | | `strftime` | `register_bindings_datetime()` | `register_bindings_datetime_utility()` | | `format_ISO8601`| `register_bindings_datetime()` | `register_bindings_datetime_utility()` | | `second` | `register_bindings_datetime()` | `register_bindings_datetime_components()` | | `wday` | `register_bindings_datetime()` | `register_bindings_datetime_components()` | | `week` | `register_bindings_datetime()` | `register_bindings_datetime_components()` | | `month` | `register_bindings_datetime()` | `register_bindings_datetime_components()` | | `is.Date` | `register_bindings_datetime()` | `register_bindings_datetime_utility()` | | `is.instant` | `register_bindings_datetime()` | `register_bindings_datetime_utility()` | | `is.timepoint` | `register_bindings_datetime()` | `register_bindings_datetime_utility()` | | `is.POSIXct` | `register_bindings_datetime()` | `register_bindings_datetime_utility()` | | `leap_year` | `register_bindings_datetime()` | | | `am` | `register_bindings_datetime()` | `register_bindings_datetime_components()` | | `pm` | `register_bindings_datetime()` | `register_bindings_datetime_components()` | | `tz` | `register_bindings_datetime()` | `register_bindings_datetime_components()` | | `semester` | `register_bindings_datetime()` | `register_bindings_datetime_components()` | | `date` | `register_bindings_datetime()` | `register_bindings_datetime_utility()` | | `make_datetime` | `register_bindings_duration()` | `register_bindings_datetime_conversion()` | | `make_date` | `register_bindings_duration()` | `register_bindings_datetime_conversion()` | | `ISOdatetime` | `register_bindings_duration()` | `register_bindings_datetime_conversion()` | | `ISOdate` | `register_bindings_duration()` | `register_bindings_datetime_conversion()` | | `difftime` | `register_bindings_duration()` | `register_bindings_duration()` | | `as.difftime` | `register_bindings_duration()` | `register_bindings_duration()` | | `decimal_date` | `register_bindings_duration()` | `register_bindings_datetime_conversion()` | | `date_decimal` | `register_bindings_duration()` | `register_bindings_datetime_conversion()` | | `duration_helpers_map_factory` | `register_bindings_duration_helpers()` | `register_bindings_duration_helpers()` | | `dpicoseconds` | `register_bindings_duration_helpers()` | `register_bindings_duration_helpers()` | | `make_difftime ` | `register_bindings_difftime_constructors()` | `register_bindings_duration_constructor()` | | `as.Date` | `register_bindings_type_cast()` | `register_bindings_datetime_conversion()` | | `as_date ` | `register_bindings_type_cast()` | `register_bindings_datetime_conversion()` | | `as_datetime ` | `register_bindings_type_cast()` | `register_bindings_datetime_conversion()` | </p> </details> Closes #13029 from dragosmg/datetime_bindings_reorg Authored-by: Dragoș Moldovan-Grünfeld <dragos.mold@gmail.com> Signed-off-by: Nic Crane <thisisnic@gmail.com>