docs: def from_soup_tag(tag):
          "Returns an instance from a given soup tag."
          periods = []
          notes = []
          for elem in tag.findAll(recursive=False):
              if elem.name not in ('period', 'note'):
                  raise TypeError("Unknown tag found: " + str(elem))
              if elem.name == 'note':
                  notes.append(elem.string.strip())
              elif elem.name == 'period':
                  periods.append(Period.from_soup_tag(elem))
          return Section(
              tag['crn'], tag['num'], tag['students'], tag['seats'],
              periods, notes
          )