Added custom priorities and Cut() validatable to stop validation immediately. #39
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.
Hi! Here's the summary of my fork, which I think could be useful for inclusion in schema.
Validatables can have custom priorities so that we can control exactly in what order keys are tested in a dictionary schema.
The Cut() class can be used to fail validation immediately when we don't want a certain key to be caught by a more general rule. An example is given in the docstring for the Cut() class, and a test case is included.
Also, all validatable classes now share a common base class (SchemaBase), and instead of checking for the presence of a "validate" attribute in an object (which may be present but not necessarily intended for validation with schema) we check if the object is an instance of SchemaBase. The user can still provide custom validatables by merely adding SchemaBase to their bases.
Anyway, the cut was the main reason why I did this fork, as it was useful to me in a CLI I was doing with the amazing docopt :)
Cheers,
Rui