def load(self, path):
        """Read configuration from file.
        """
        with open(path, "rb") as f:
            content = f.read().decode("utf-8")

        section_text_list = list()

        lines = list()
        for line in content.split("\n"):
            if line.startswith("["):
                section_text_list.append("\n".join(lines))
                lines = list()
                lines.append(line)
            else:
                lines.append(line)

        section_text_list.append("\n".join(lines))

        self._sections = OrderedDict()
        for text in section_text_list[1:]:
            section = Section.from_text(text)
            self._sections[section.name] = section