code: def _stage_and_upload_item(self, entry, share_after_upload=True):
      log.info(f"Uploading {entry['title']}")
      log.debug(f"    sample: {entry}")
      try:
          nb_path = entry["path"]
          self._preupload_check(entry["title"], nb_path)
          runtime_stamp = self._infer_runtime_stamp(
              entry.get("runtime", "standard")
          )
          categories = entry.get("categories", None)
          self._stamp_file_with_runtime(nb_path, runtime_stamp)
          item_id = self._infer_item_id(entry["url"])
          item = self.update_item(
              item_id=item_id,
              item_type=NB_PORTAL_TYPE,
              item_type_keywords=NB_PORTAL_TYPE_KEYWORDS,
              title=entry["title"],
              categories=categories,
              snippet=entry["snippet"],
              description=entry["description"],
              license_info=entry["licenseInfo"],
              tags=entry["tags"],
              nb_path=nb_path,
              runtime_stamp=runtime_stamp,
              thumbnail=entry["thumbnail"],
          )
          if share_after_upload:
              item.share(everyone=True)
          item.protect()
          if categories:
              self._assign_categories_to_item(item, categories)
          self._apply_html_preview_to_item(item, nb_path)
          log.info(f"    Uploaded succeded -> {item.homepage}")
      except Exception as e:
          self.failed_uploads.append(entry["title"])
          log.warn(f"    Couldn't upload {entry['title']}: {e}")
          log.debug(traceback.format_exc())
  
imports: import os
  import sys
  import argparse
  import traceback
  import json
  import re
  import logging
  import yaml
  import nbformat
  from nbconvert import HTMLExporter
  from arcgis.gis import GIS
label_desc: Use image node_id 3 for calling the ItemsUploader obj's underlying member method code with example usage: obj._stage_and_upload_item(entry, share_after_upload) without return types