<SYSTEM_TASK:>
Solve the following problem using Python, implementing the functions described below, one line at a time
<END_TASK>
<USER_TASK:>
Description:
 def add_section(self, alias, section):
 """ Add a sub-section to this section. """

        if not isinstance(alias, six.string_types):
            raise TypeError('Section name must be a string, got a {!r}'.format(type(alias)))

        self._tree[alias] = section

        if self.settings.str_path_separator in alias:
            raise ValueError(
                'Section alias must not contain str_path_separator which is configured for this Config -- {!r} -- '
                'but {!r} does.'.format(self.settings.str_path_separator, alias)
            )

        section._section = self
        section._section_alias = alias

        self.dispatch_event(self.hooks.section_added_to_section, alias=alias, section=self, subject=section)