-
-
Notifications
You must be signed in to change notification settings - Fork 104
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
Adding assertr
to ROpenSci
#23
Comments
I have a use case for this and have already looked through the code, so am happy to review if that is useful (at the same time I can't review until the 4th January at the earliest as I will be travelling over the break). |
I've been meaning to do one, so I can be the second. |
thanks jenny, assigned |
@tonyfischetti Excellent! Thanks for submitting! Looking forward to the reviews and adding this to the suite. 😃 |
Sorry - I have been meaning to (and also #25). Next week for both I hope. |
cool - (p.s. that comment was your friendly heroku robot https://github.com/ropenscilabs/heythere) |
The descent towards manuscript central begins... 😁 |
unless you're volunteering to remind everyone manually |
Definitely not! I think it's great. I actually thought it was you, which you could never say for MS central. |
Maybe we should send hand-written notes? |
And yes, duly noted, that I need to bust a move on this. |
Yes! |
General comments
The custom handler routine is inflexible
Minor comments
|
Thanks for the kind words and really great feedback @richfitz.
As pointed out, this is somewhat a consequence of my making the API as elegant as possible but at the expense of some opaque-ness. The problem is (again, as you pointed out) there's no elegant way that I can see to programmatically detect the argument types. So we have verbs that are literally synonyms (I chose their names using a thesaurus). Unfortunately, I can't think of a better naming mechanism without really long function names like
I like the idea of using a
Nope, that's an error. Good catch!
That was a difficult choice. It's a hell of a heavy dependency, but I was wary of implementing
I need this feature, and I have a few great ideas on how to implement it. I'd like to talk to you more (@richfitz) about your particular use case in case my solution only suits my use case. I think this feature can potentially be the most powerful and useful capability of |
So I'm going to run into a little more free time in the near future and I'd like to get back from my learning hiatus back into improving
As mentioned before, there is Principled though that solution was, I'm not sure its the correct thing to do going forward; it's always been one of R's strengths from a user's point of view to use a familiar generic function ( So how about this... creating an This would improve This solution is perhaps a little unconventional, but it completely obviates the requirement that a useR remember all the verbs.
The most common suggestion for The reason I needed to take my time with this one is that I need the warnings to be concatenated through a The big complication is what happens at the end of the chain. There needs to be something that tells I'd appreciate any feedback on these ideas for two reasons (a) it's now (or will hopefully be soon) ROpenSci's project not just mine, and (b) I'd like to get the input of some talented developers :) |
To review, none of the proposed additions have to break backwards compatibility :) It would just make everything much easier for the user.... the example in the README would go from this:
to this
( |
Since I'm the one who is yet to review ... @tonyfischetti do you have recommendations of a good dataset to run through |
@jennybc Nothing immediately comes to mind but I'm sure I can dig up one of the examples that inspired me to get into this package in the first place :) |
@aammd politely reminded me I have some really ugly data asserting/cleaning code in the private STAT 545 instructors repo, so that's my plan B 😬. |
@jennybc wellll i would not say ugly, but rather "pre-assertr". it represents "how we did this before assertr" and highlights improvements in the UI of this package (improvements I tried to show in my lesson about |
@tonyfischetti some thoughts on:
with help of @smbache - we have a way to detect whether a piped command is the last one or not. If it is the last, do X (e.g., execute some other fxn, print data, etc.) instead of passing to the next command. You can see the helper fxns here https://github.com/ropensci/jqr/blob/master/R/pipe_helpers.R and usage here https://github.com/ropensci/jqr/blob/master/R/index.R#L42 |
@jennybc - hey there, it's been 89 days, please get your review in soon, thanks 😺 |
OK I promise you I will not be able to face you an unconf w/o this being totally done. |
@jennybc - hey there, it's been 151 days, please get your review in soon, thanks 😺 (ropensci-bot) |
It must be the temptation of ensurer that is causing delay 😆 Hehe |
I am, and have been, halfway done for ages. I have a PR ready for the vignette. It's the incredibly insightful overall comments that need to be written. 😳 Will do. |
@smbache I didn't know |
It's not. I was joking ;) |
@jennybc - hey there, it's been 159 days, please get your review in soon, thanks 😺 (ropensci-bot) |
@tonyfischetti approved!
|
I tried to do the last thing and it says I don't have admin rights to |
you should have received an invitation from ropenscilabs, did you get that email? |
Idiotic move on my part not checking the mail :) It's done |
sweet! |
The assertr package supplies a suite of functions designed to verify assumptions about data early in an analysis pipeline to protect against common data errors and instances of bad data.
https://github.com/tonyfischetti/assertr
Any. Mostly in the form of
data.frames
Anyone who has ever struggled with bad data
The
ensurer
package attempts to solve the very same problem. To a certain extent, theassertive
package also offer some similar capabilities. The difference betweenassertr
and these other packages is the grammar of usage and the way that assertions of different types can be easily combined to express arbitrarily complex assertions in a very readable way.Yes. All the user-facing functions are in snake case, but the internal functions sometimes use dots (
.
) as separators. I'm open to changing that. Also, the package doesn't have a code of conduct yet but I think it's a good idea to include.No
It already is
You bet
devtools::check()
produce any errors or warnings? If so paste them below.No warnings
The text was updated successfully, but these errors were encountered: