@classmethod<EOL><INDENT>def _check_param(cls, name=None, value=None, params=None, optional=True, max_length=None, type=None,<EOL>gte=None, lte=None, sub_max_length=None, sub_type=None):<DEDENT>
assert params is None or isinstance(params, dict)<EOL>if value is None:<EOL><INDENT>if not optional:<EOL><INDENT>assert value is not None<EOL><DEDENT><DEDENT>else:<EOL><INDENT>if type is not None:<EOL><INDENT>assert isinstance(value, type)<EOL><DEDENT>if max_length is not None:<EOL><INDENT>assert len(value) <= max_length<EOL><DEDENT>if isinstance(value, list):<EOL><INDENT>for sub_value in value:<EOL><INDENT>if sub_type is not None:<EOL><INDENT>assert isinstance(sub_value, sub_type)<EOL><DEDENT>if sub_max_length is not None:<EOL><INDENT>assert len(sub_value) <= sub_max_length<EOL><DEDENT><DEDENT><DEDENT>if isinstance(value, dict):<EOL><INDENT>for key in value:<EOL><INDENT>sub_value = value[key]<EOL>if sub_type is not None:<EOL><INDENT>assert isinstance(sub_value, sub_type)<EOL><DEDENT>if sub_max_length is not None:<EOL><INDENT>assert len(sub_value) <= sub_max_length<EOL><DEDENT><DEDENT><DEDENT>if isinstance(value, int):<EOL><INDENT>if gte is not None:<EOL><INDENT>assert value >= gte<EOL><DEDENT>if lte is not None:<EOL><INDENT>assert value <= lte<EOL><DEDENT><DEDENT>if name is not None and params is not None:<EOL><INDENT>params[name] = value<EOL><DEDENT><DEDENT>
This checks the value for different type, max length, etc.  If all of the checks pass, then the value is placed
in the params bucket
:param name: The name of the parameter
:param value: The value of param
:param params: The dictionary where the param should go if all of the checks pass
:param optional: True (default) if the value is optional
:param max_length: The maximum length of the param
:param type: The type of the param
:param gte: Greater than or equal to this number
:param lte: LEss than or equal to this number
:param sub_max_length: The sub maximum length (for iterables)
:param sub_type: The sub type (for iterables)
:return: Nothing