@classmethod
def get_query_classes(cls, sub_classes=None):
    """
        Get the tuple of classes to be used for the entity query. If sub_classes is defined, each class will be
        validated by verifying that it is a sub class of the loader's orm base class.
        Validate a tuple of classes if a user passes in a specific one when attempting to load an entity. Each class
        should be a sub class of the entity loader's orm base class

        :param sub_classes: an optional tuple of orm classes, that should each be strict sub classes of the
            base orm class of the loader, that will narrow the queryset
        :returns: the tuple of orm classes to be used for the entity query
        :raises ValueError: if any of the classes are not a sub class of the entity loader's orm base class
        """
    if sub_classes is None:
        return cls.orm_base_class,
    if not isinstance(sub_classes, tuple):
        raise TypeError('sub_classes should be a tuple: {}'.format(sub_classes)
            )
    for sub_class in sub_classes:
        if not issubclass(sub_class, cls.orm_base_class):
            raise ValueError('{} is not a sub class of the base orm class {}'
                .format(sub_class, cls.orm_base_class))
    return sub_classes
