docs: def build_tree(self):
          """Build the tree for this package."""
          for m in listdir(self.path):
              abs_m = join(self.path, m)
              if isfile(abs_m) and m.endswith('.py'):
                  name = splitext(m)[0]
                  if not self.limit_to or name in self.limit_to:
                      self.modules.append(Module(name, abs_m, self.dsm, self))
              elif isdir(abs_m):
                  if isfile(join(abs_m, '__init__.py')) or not self.enforce_init:
                      heads, new_limit_to = self.split_limits_heads()
                      if not heads or m in heads:
                          self.packages.append(
                              Package(m, abs_m, self.dsm, self, new_limit_to,
                                      build_tree=True,
                                      build_dependencies=False,
                                      enforce_init=self.enforce_init))