code: def _send(self, data: List[Dict[str, any]]) -> Dict:
      req = urllib.request.Request(self.url)
      req.add_header("Content-Type", "application/json; charset=utf-8")
      data_json = json.dumps(data)
      data_json = data_json.encode("utf-8")
      req.add_header("Content-Length", str(len(data)))
  
      response = urllib.request.urlopen(
          req, data_json, timeout=self.timeout_seconds
      )
      content = response.read().decode("utf-8")
      result = json.loads(content)
  
      for e in result.get("errors", []):
          if "error" in e:
              labml_notice(
                  [
                      "LabML App Error: ",
                      (e["error"] + "", Text.key),
                      "\n",
                      (e["message"], Text.value),
                  ],
                  is_danger=True,
              )
              raise RuntimeError("LabML App Error", e)
          elif "warning" in e:
              labml_notice(
                  [
                      "LabML App Warning: ",
                      (e["warning"] + ": ", Text.key),
                      (e["message"], Text.value),
                  ]
              )
          else:
              raise RuntimeError("Unknown error from LabML App", e)
  
      return result
  
file_path: labml/client/labml/internal/computer/projects/app.py
imports: import json
  import socket
  import urllib.error
  import urllib.request
  from typing import Dict, List, Any
  import labml
  from labml.logger import Text
  from labml.utils.notice import labml_notice
label_desc: Use image node_id 3 for calling the DirectAppCaller obj's underlying member method code with example usage: obj._send(data) and returns: result