<SYSTEM_TASK:>
Solve the following problem using Python, implementing the functions described below, one line at a time
<END_TASK>
<USER_TASK:>
Description:
 def _remove_namespace(self, namespace):
 """ Remove a CIM namespace from the mock repository. The namespace must exist in the mock repository and must be empty. The default connection namespace cannot be removed. Parameters: namespace (:term:`string`):
 The name of the CIM namespace in the mock repository. Must not be `None`. Any leading and trailing slash characters are split off from the provided string. Raises: ValueError: Namespace argument must not be None CIMError: CIM_ERR_NOT_FOUND if the namespace does not exist in the mock repository. CIMError: CIM_ERR_NAMESPACE_NOT_EMPTY if the namespace is not empty. CIMError: CIM_ERR_NAMESPACE_NOT_EMPTY if the default connection namespace was attempted to be deleted. """


        if namespace is None:
            raise ValueError("Namespace argument must not be None")

        # Normalize the namespace name
        namespace = namespace.strip('/')

        if namespace not in self.namespaces:
            raise CIMError(
                CIM_ERR_NOT_FOUND,
                _format("Namespace {0!A} does not exist in the mock "
                        "repository", namespace))

        if not self._class_repo_empty(namespace) or \
                not self._instance_repo_empty(namespace) or \
                not self._qualifier_repo_empty(namespace):
            raise CIMError(
                CIM_ERR_NAMESPACE_NOT_EMPTY,
                _format("Namespace {0!A} is not empty", namespace))

        if namespace == self.default_namespace:
            raise CIMError(
                CIM_ERR_NAMESPACE_NOT_EMPTY,
                _format("Connection default namespace {0!A} cannot be "
                        "deleted from mock repository", namespace))

        del self.namespaces[namespace]