code: def post(
      url: str,
      body: Optional[Any] = None,
      auth: Optional[Tuple[str, str]] = None,
  ):
      logging.info(f"Requesting POST to {url} with {body}")
      headers = {}
      req = request.Request(url, headers=headers, method="POST")
      if auth is not None:
          auth_str = base64.b64encode(f"{auth[0]}:{auth[1]}".encode())
          req.add_header("Authorization", f"Basic {auth_str.decode()}")
  
      if body is None:
          body = ""
  
      req.add_header("Content-Type", "application/json; charset=utf-8")
      data = json.dumps(body)
      data = data.encode("utf-8")
      req.add_header("Content-Length", len(data))
  
      with request.urlopen(req, data) as response:
          return response.read()
  
imports: import json
  import subprocess
  import re
  import os
  import base64
  import logging
  from urllib import request, error
  from typing import Dict, Tuple, Any, Optional, List
label_desc: Use image node_id 2 for calling a global function with example usage: post(url, body, auth) and returns: response