<SYSTEM_TASK:>
Solve the following problem using Python, implementing the functions described below, one line at a time
<END_TASK>
<USER_TASK:>
Description:
 def register(self, settings_class=NoSwitcher, *simple_checks, **conditions):
 """ Register a settings class with the switcher. Can be passed the settings class to register or be used as a decorator. :param settings_class: The class to register with the provided conditions. :param *simple_checks: A list of conditions for using the settings class. If any of the values are falsy, the class will not be used. If any of the values are callable, they will be called before evaluating. :param **conditions: Values to check. The key specifies which of the check functions (registered with ``add_check``) to use; the value is passed to the check function. """

        if settings_class is NoSwitcher:
            def decorator(cls):
                self.register(cls, *simple_checks, **conditions)
                return cls
            return decorator

        available_checks = self.checks.keys()
        for condition in conditions.keys():
            if condition not in available_checks:
                raise InvalidCondition(
                    'There is no check for the condition "%s"' % condition)

        self._registry.append((settings_class, simple_checks, conditions))