Skip to content

Conversation

@dragosmg
Copy link
Contributor

@dragosmg dragosmg commented Apr 29, 2022

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)
More details

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()

@github-actions
Copy link

@dragosmg dragosmg marked this pull request as ready for review April 29, 2022 13:06
Copy link
Member

@thisisnic thisisnic left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This is great - thanks very much for re-organising these, will make it a lot easier for newer contributors to find their way around the project.

@thisisnic thisisnic closed this in 893faa7 May 4, 2022
@ursabot
Copy link

ursabot commented May 8, 2022

Benchmark runs are scheduled for baseline = 7f6b074 and contender = 893faa7. 893faa7 is a master commit associated with this PR. Results will be available as each benchmark for each run completes.
Conbench compare runs links:
[Finished ⬇️0.0% ⬆️0.0%] ec2-t3-xlarge-us-east-2
[Finished ⬇️0.43% ⬆️0.0%] test-mac-arm
[Finished ⬇️0.36% ⬆️0.0%] ursa-i9-9960x
[Finished ⬇️0.32% ⬆️0.08%] ursa-thinkcentre-m75q
Buildkite builds:
[Finished] 893faa74 ec2-t3-xlarge-us-east-2
[Finished] 893faa74 test-mac-arm
[Finished] 893faa74 ursa-i9-9960x
[Finished] 893faa74 ursa-thinkcentre-m75q
[Finished] 7f6b074b ec2-t3-xlarge-us-east-2
[Finished] 7f6b074b test-mac-arm
[Finished] 7f6b074b ursa-i9-9960x
[Finished] 7f6b074b ursa-thinkcentre-m75q
Supported benchmarks:
ec2-t3-xlarge-us-east-2: Supported benchmark langs: Python, R. Runs only benchmarks with cloud = True
test-mac-arm: Supported benchmark langs: C++, Python, R
ursa-i9-9960x: Supported benchmark langs: Python, R, JavaScript
ursa-thinkcentre-m75q: Supported benchmark langs: C++, Java

@ursabot
Copy link

ursabot commented May 8, 2022

['Python', 'R'] benchmarks have high level of regressions.
test-mac-arm

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants