tree d6123b121ba7135f0bae697e37e59acda8a4566e
parent e7e5cfe44f662c5a1af4c550e76b7756ee7f5e60
author Cris Ewing <cris@crisewing.com> 1597871641 -0700
committer GitHub <noreply@github.com> 1597871641 -0400
gpgsig -----BEGIN PGP SIGNATURE-----
 
 wsBcBAABCAAQBQJfPZYZCRBK7hj4Ov3rIwAAdHIIAHjc9ReGKlN4pI2Ty9VG//xl
 21raHgDwWOqoI6C+2i99v8ggsj85C6JF6PjjF2QMLoaIo8i8N6AScFrtDwfPFiS6
 tWWMerjVSty99sIW9UsdzH3gaubaa3+EHLdeIf3Pnbc8OqKdnn7P25XgzuDl3M1s
 BVbI/GBdaxjUHOU9wkS1iaq5BLwOFz/Adw8UgafCGhbFB4dSjpFEqcyxBYZIbsZs
 gyw1P9LloeRJDiStas6VJ7yOmkAArzlnfclN1Tm3jyHQz18e6WKAPLiK7vkWgnOF
 KGuNAhcAV+RuufZHURfTZg5Qnr+F88IEoxT0S/Bo7WVMz9JDphfHYHQEdko9pAk=
 =kqCC
 -----END PGP SIGNATURE-----
 

AVRO-2906: Traversal validation (#936)

* AVRO-2906: Convert validation to a traversal-based approach

Use schema-type specific iterators and validators to allow a
breadth-first traversal of a full schema, validating each node
as you go.

The benefit of this approach is that it allows us to pin-point
the specific part of the schema that has failed validation.
Where previously the error message for a large schema would print
the entire datum as well as the full schema and say "this is not
that", this new approach will print the specific sub-schema that has
failed in order to allow more informative errors.

A second improvement is that by traversing the schema instead of
processing it recursively, the algorithm is more efficient in use
of system resources.  In particular for schemas that have lots of
nested parts, this will make a difference.

Make the required changes to pass tests in all supported python versions.

This commit removes type hints present in the first commit in order to
allow using the code in older Python versions.

In addition:
  * the use of `str` has been replaced by the compatible `unicode`.
  * the ValidationNode namedtuple has been re-expressed in syntax available
    in all supported Python versions.
  * the use of a custom InvalidEvent exception has been replace by using
    AvroTypeException
  * all specific single-type validators have been replaced by partials of
    _validate_type with a tuple of one or more type objects.

Fix typos and raise StopIteration as suggested in code review

Move the responsibility for validation to the Schema class.

Each schema subclass will be responsible for its own validation. This
simplifies the structure of io.py, removes the dict lookup of validators,
and reduces somewhat the repetition that was in io.py.

Move validators to a class attribute and update method code.

This makes things look a little bit cleaner than having the validators right in the midst of the method.

Add arg spec docs to docstring for base Schema class.

Clean up mistakes.

* Fix a docstring to be a more accurate statement of reality.
* Remove an unused import.
* Remove extra blank lines.