code: def workspace_pools_recombobulate(parsed, targets, extra_target):
      """Reconstructs the Workspace Pools args and returns a WorkspaceMemoryPool object"""
      WORKSPACE_POOL_PARAMS = [
          "workspace_pools_size_hint_bytes",
          "workspace_pools_targets",
          "workspace_pools_clock_frequency_hz",
          "workspace_pools_read_bandwidth_bytes_per_cycle",
          "workspace_pools_write_bandwidth_bytes_per_cycle",
          "workspace_pools_read_latency_cycles",
          "workspace_pools_write_latency_cycles",
      ]
      WORKSPACE_POOL_TARGET_PARAMS = [
          "workspace_pools_target_burst_bytes",
      ]
  
      workspace_pools = _split_pools_to_pool_names(
          parsed.workspace_pools
      )
      if not workspace_pools:
          return None
  
      parse_attribute_to_pool_name = {
          workspace_pool_param: _parse_attribute_of_pool_name(
              getattr(parsed, workspace_pool_param)
          )
          for workspace_pool_param in WORKSPACE_POOL_PARAMS
      }
      parse_target_burst_bytes_to_pool = {
          workspace_pool_param: _parse_target_attributes_of_pool_name(
              getattr(parsed, workspace_pool_param), targets
          )
          for workspace_pool_param in WORKSPACE_POOL_TARGET_PARAMS
      }
  
      # Load extra targets from CLI
      additional_targets = []
  
      for t in extra_target:
          additional_targets.append(
              Target(t["raw"], host=targets[0].host or targets[0])
          )
  
      target = targets + additional_targets
      if targets[0].host:
          target.append(targets[0].host)
  
      return WorkspaceMemoryPools(
          [
              WorkspacePoolInfo(
                  pool_name,
                  targets=_parse_target_string(
                      parse_attribute_to_pool_name[
                          "workspace_pools_targets"
                      ].get(pool_name),
                      target,
                      pool_name,
                  ),
                  pool_info_properties=PoolInfoProperties(
                      size_hint_bytes=int(
                          parse_attribute_to_pool_name[
                              "workspace_pools_size_hint_bytes"
                          ].get(pool_name, -1)
                      ),
                      clock_frequency_hz=int(
                          parse_attribute_to_pool_name[
                              "workspace_pools_clock_frequency_hz"
                          ].get(pool_name, -1)
                      ),
                      read_bandwidth_bytes_per_cycle=int(
                          parse_attribute_to_pool_name[
                              "workspace_pools_read_bandwidth_bytes_per_cycle"
                          ].get(pool_name, -1)
                      ),
                      write_bandwidth_bytes_per_cycle=int(
                          parse_attribute_to_pool_name[
                              "workspace_pools_write_bandwidth_bytes_per_cycle"
                          ].get(pool_name, -1)
                      ),
                      read_latency_cycles=int(
                          parse_attribute_to_pool_name[
                              "workspace_pools_read_latency_cycles"
                          ].get(pool_name, 0)
                      ),
                      write_latency_cycles=int(
                          parse_attribute_to_pool_name[
                              "workspace_pools_write_latency_cycles"
                          ].get(pool_name, 0)
                      ),
                      target_burst_bytes=_parse_target_burst(
                          parse_target_burst_bytes_to_pool[
                              "workspace_pools_target_burst_bytes"
                          ],
                          pool_name,
                      ),
                  ),
              )
              for pool_name in workspace_pools
          ]
      )
  
file_path: tvm/python/tvm/driver/tvmc/workspace_pools.py
imports: import logging
  import re
  from tvm.driver.tvmc import TVMCException
  from tvm.target import Target
  from tvm.ir.memory_pools import PoolInfoProperties, WorkspaceMemoryPools, WorkspacePoolInfo
label_desc: Use image node_id 7 for calling a global function with example usage: workspace_pools_recombobulate(parsed, targets, extra_target) and returns: WorkspaceMemoryPools, None