def METHOD_NAME(self, input_dict):
    """
    Checks all the input_dict and tries to validate them, to ensure
    that they have been properly set raises Exceptions indicating any
    problems that should arise during the validation
    :param input_dict: a dictionary of inputs
    :return: input_dict: the original dictionary with all validated kyes
             now removed
    :return: validated_dict: a dictionary containing all the input keys
             which have now been validated.
    """
    validated_dict = {}
    if '_orbital_type' in input_dict:
        raise ValidationError('You cannot manually set the _orbital_type')
    entry_point = get_entry_point_from_class(self.__class__.__module__, self.__class__.__name__)[1]
    if entry_point is None:
        raise ValidationError(
            'Unable to detect entry point for current class {}, maybe you did not register an entry point for it?'.
            format(self.__class__)
        )
    validated_dict['_orbital_type'] = entry_point.name
    for name, validator in self._base_fields_required:
        try:
            value = input_dict.pop(name)
        except KeyError:
            raise ValidationError(f"Missing required parameter '{name}'")
        # This might raise ValidationError
        try:
            value = validator(value)
        except ValidationError as exc:
            raise exc.__class__(f"Error validating '{name}': {str(exc)}")
        validated_dict[name] = value
    for name, validator, default_value in self._base_fields_optional:
        try:
            value = input_dict.pop(name)
        except KeyError:
            value = default_value
        # This might raise ValidationError
        try:
            value = validator(value)
        except ValidationError as exc:
            raise exc.__class__(f"Error validating '{name}': {str(exc)}")
        validated_dict[name] = value
    if input_dict:
        raise ValidationError(f'Unknown keys: {list(input_dict.keys())}')
    return validated_dict