def rlist_classes(module, cls_filter=None):
found = list()<EOL>mnames = rlist_modules(module)<EOL>for mname in mnames:<EOL><INDENT>[found.append(c) for c in list_classes(mname, cls_filter)]<EOL><DEDENT>return found<EOL>
Attempts to list all of the classes within a given module namespace.
This method, unlike list_classes, will recurse into discovered
submodules.

If a type filter is set, it will be called with each class as its
parameter. This filter's return value must be interpretable as a
boolean. Results that evaluate as True will include the type in the
list of returned classes. Results that evaluate as False will exclude
the type in the list of returned classes.

:param mname: of the module to descend into
:param cls_filter: a function to call to determine what classes should be
            included.