this diff is for duplicating all functionality currently present in dagster_pandas validators, albeit more efficiently and with more metadata.
- R1:bd0a7f332bbb: reimplementing all prior validators
Unit, adding more tests
I'd like to see unit tests of the validators (this will also make their semantics clear); for the unit tests of the solids, prefer execute_solid rather than the full execute_pipeline machinery. I want to encourage you to be more pedantic in docstrings and names -- it can be hard to figure out exactly what everything is doing at first glance, and you can assume with general validity that users have no time or patience. For the public APIs, I'd like to see example usage in docstrings.
don't be afraid to repeat yourself in docstrings. these will typically not be consumed together but in isolation.
what's the advantage of constructing metadict rather than passing these explicitly as kwargs? (the disadvantage is it obscures the contract of the underlying ConstraintWithMetadataException)
do we really need to support both forms -- could we instead settle on and enforce the dict, etc
why do we need a special affordance for this
i'm not really seeing the point of this sugar
shouldn't we throw/fail validation?
does this operate on a single value or on a column?
is this decorator intended to be public or is it purely internal?
this does what it says, but we could stand to invest a little more in explaining how. from my perspective, the docstrings are the most important thing here because they are how users will decide whether to try to use this machinery and whether it can solve their problems.
good to note the default here
does this run the risk of collision
no TODOs in docstrings