code: def parse_cli_string(self, cli_words: str):
      cli_words = cli_words.replace("lightly-crop ", "")
      cli_words = re.split("=| ", cli_words)
      assert len(cli_words) % 2 == 0
      dict_keys = cli_words[0::2]
      dict_values = cli_words[1::2]
      for key, value in zip(dict_keys, dict_values):
          value = value.strip('"')
          value = value.strip("'")
          self.cfg[key] = value
  
imports: import os
  import random
  import re
  import sys
  import tempfile
  import torchvision
  import yaml
  from hydra.experimental import compose, initialize
  import lightly
  from lightly.data import LightlyDataset
  from lightly.utils.bounding_box import BoundingBox
  from lightly.utils.cropping.crop_image_by_bounding_boxes import crop_dataset_by_bounding_boxes_and_save
  from lightly.utils.cropping.read_yolo_label_file import read_yolo_label_file
  from tests.api_workflow.mocked_api_workflow_client import MockedApiWorkflowClient, MockedApiWorkflowSetup
label_desc: Use image node_id 4 for calling the TestCLICrop obj's underlying member method code with example usage: obj.parse_cli_string(cli_words) without return types