code: def _data_build(self, data, modname, path):
          
          try:
              node = _parse(data + "\n")
          except (TypeError, ValueError, SyntaxError) as exc:
              raise exceptions.AstroidSyntaxError(
                  "Parsing Python code failed:\n{error}",
                  source=data,
                  modname=modname,
                  path=path,
                  error=exc,
              ) from exc
          if path is not None:
              node_file = os.path.abspath(path)
          else:
              node_file = "<?>"
          if modname.endswith(".__init__"):
              modname = modname[:-9]
              package = True
          else:
              package = (
                  path is not None
                  and os.path.splitext(os.path.basename(path))[0] == "__init__"
              )
          builder = rebuilder.TreeRebuilder(self._manager)
          module = builder.visit_module(node, modname, node_file, package)
          module._import_from_nodes = builder._import_from_nodes
          module._delayed_assattr = builder._delayed_assattr
          return module
docs: Build tree node from data and add some informations