code: def mock_ic03_dataset(tmpdir_factory, mock_image_stream):
      root = tmpdir_factory.mktemp("datasets")
      ic03_root = root.mkdir("SceneTrialTrain")
      labels = """<tagset><image><imageName>images/0.jpg</imageName><Resolution x="1280" y="880"/><taggedRectangles>
      <taggedRectangle x="174.0" y="392.0" width="274.0" height="195.0" offset="0.0" rotation="0.0"><tag>LIVING</tag>
      </taggedRectangle></taggedRectangles></image><image><imageName>images/1.jpg</imageName>
      <Resolution x="1650" y="500"/>
      <taggedRectangles><taggedRectangle x="244.0" y="440.0" width="300.0" height="220.0" offset="0.0" rotation="0.0">
      <tag>HOUSE</tag></taggedRectangle></taggedRectangles></image><image><imageName>images/2.jpg</imageName>
      <Resolution x="850" y="420"/><taggedRectangles>
      <taggedRectangle x="180.0" y="400.0" width="280.0" height="250.0" offset="0.0" rotation="0.0"><tag>COST</tag>
      </taggedRectangle></taggedRectangles></image></tagset>"""
  
      with open(ic03_root.join("words.xml"), "w") as f:
          f.write(labels)
  
      image_folder = ic03_root.mkdir("images")
      file = BytesIO(mock_image_stream)
      for i in range(3):
          fn = image_folder.join(f"{i}.jpg")
          with open(fn, "wb") as f:
              f.write(file.getbuffer())
      # Packing data into an archive to simulate the real data set and bypass archive extraction
      archive_path = root.join("ic03_train.zip")
      shutil.make_archive(
          root.join("ic03_train"), "zip", str(ic03_root)
      )
      return str(archive_path)
  
imports: import json
  import shutil
  import tempfile
  from io import BytesIO
  import cv2
  import hdf5storage
  import numpy
  import pytest
  import requests
  import scipy.io
  from PIL import Image
  from doctr.datasets.generator.base import synthesize_text_img
  from doctr.io import reader
  from doctr.utils import geometry
label_desc: Use image node_id 23 for calling a global function with example usage: mock_ic03_dataset(tmpdir_factory, mock_image_stream) and returns: str