PyHamcrest is a framework for writing matcher objects, allowing you to
declaratively define "match" rules. There are a number of situations where
matchers are invaluable, such as UI validation, or data filtering, but it is
in the area of writing flexible tests that matchers are most commonly used.
Python 2 version.