Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Suppress autoprint during := assignment on subclasses of data.table #6631

Merged
merged 14 commits into from
Dec 9, 2024

Conversation

MichaelChirico
Copy link
Member

@MichaelChirico MichaelChirico commented Dec 4, 2024

Closes #3029.

NB: This is currently based to #6589 given it touches a very similar aspect of print.data.table() (hence cc @aitap too).

This constitutes a small breaking change by restoring behavior of print(DT) and print(DT[, a:=b]) to always print. I don't really see a downside of this -- the other tests in autoprint continue to WAI.

Does anyone see a reason to maintain the old behavior? @jangorecki @tdhock @ben-schwen. It should be feasible to adjust this PR to make the code a tiny bit more complicated while still achieving the desired fix for #3029 -- I just am not seeing the benefit of that (besides back-compatibility on this pretty minor aspect of the package).

Here's the relevant commit that introduced this behavior: 5d95da3 fixing #1122.

It seems like this PR achieves what that PR couldn't (possibly due to an underlying change in R itself), namely to have if (TRUE) DT[, a:=b] and print(DT) both not print.

aitap and others added 8 commits October 21, 2024 17:46
Implementing a method for the knitr::knit_print generic makes it
possible to customise the behaviour without looking up the call stack.

The current solution only works on R >= 3.6.0 because that's where
delayed S3 registration has been introduced.
Use setHook() to ensure that registerS3method() will be called in the
same session if 'knitr' is loaded later. Not needed on R >= 3.6.0 where
S3method(knitr::knit_print) will do the right thing by itself.
Copy link

codecov bot commented Dec 4, 2024

Codecov Report

All modified and coverable lines are covered by tests ✅

Project coverage is 98.61%. Comparing base (a94401a) to head (9d8f3c6).
Report is 4 commits behind head on master.

Additional details and impacted files
@@           Coverage Diff           @@
##           master    #6631   +/-   ##
=======================================
  Coverage   98.61%   98.61%           
=======================================
  Files          79       79           
  Lines       14533    14533           
=======================================
  Hits        14332    14332           
  Misses        201      201           

☔ View full report in Codecov by Sentry.
📢 Have feedback on the report? Share it here.

Copy link

github-actions bot commented Dec 4, 2024

Comparison Plot

Generated via commit 9d8f3c6

Download link for the artifact containing the test results: ↓ atime-results.zip

Task Duration
R setup and installing dependencies 4 minutes and 31 seconds
Installing different package versions 7 minutes and 43 seconds
Running and plotting the test cases 2 minutes and 24 seconds

@MichaelChirico MichaelChirico changed the base branch from master to knit_print December 4, 2024 06:33
@MichaelChirico MichaelChirico added this to the 1.17.0 milestone Dec 4, 2024
@MichaelChirico
Copy link
Member Author

cc @eliocamp @nikosbosse @seabbs @sbfnk in case you want to test out the proposed fix for your use case.

Base automatically changed from knit_print to master December 5, 2024 07:33
@MichaelChirico MichaelChirico marked this pull request as ready for review December 5, 2024 07:37
@MichaelChirico MichaelChirico changed the title Autoprint subclass Suppress autoprint during := assignment on subclasses of data.table Dec 6, 2024
@ben-schwen
Copy link
Member

Old behavior seems unwanted to me. Forcing that print indeed prints to output seems legit!

@MichaelChirico
Copy link
Member Author

SG! maybe revdeps will see something but I doubt it (as this should only really affect interactive sessions)

@MichaelChirico MichaelChirico merged commit 17a7c3e into master Dec 9, 2024
11 checks passed
@MichaelChirico MichaelChirico deleted the autoprint-subclass branch December 9, 2024 12:43
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

Print method for subclass makes := return visible output
3 participants