Suppress autoprint during := assignment on subclasses of data.table#6631
Merged
MichaelChirico merged 14 commits intomasterfrom Dec 9, 2024
Merged
Suppress autoprint during := assignment on subclasses of data.table#6631MichaelChirico merged 14 commits intomasterfrom
MichaelChirico merged 14 commits intomasterfrom
Conversation
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.
Codecov ReportAll modified and coverable lines are covered by tests ✅
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. |
|
Generated via commit 9d8f3c6 Download link for the artifact containing the test results: ↓ atime-results.zip
|
Member
Author
|
cc @eliocamp @nikosbosse @seabbs @sbfnk in case you want to test out the proposed fix for your use case. |
Member
|
Old behavior seems unwanted to me. Forcing that |
ben-schwen
approved these changes
Dec 9, 2024
Member
Author
|
SG! maybe revdeps will see something but I doubt it (as this should only really affect interactive sessions) |
This was referenced Apr 4, 2026
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.

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)andprint(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]andprint(DT)both not print.