-
Notifications
You must be signed in to change notification settings - Fork 988
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
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
|
cc @eliocamp @nikosbosse @seabbs @sbfnk in case you want to test out the proposed fix for your use case. |
Old behavior seems unwanted to me. Forcing that |
SG! maybe revdeps will see something but I doubt it (as this should only really affect interactive sessions) |
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.