class_docstr: Target device information, use through TVM API.
  
  Note
  ----
  You can create target using the constructor or the following functions
  
  - :py:func:`tvm.target.arm_cpu` create arm_cpu target
  - :py:func:`tvm.target.cuda` create CUDA target
  - :py:func:`tvm.target.rocm` create ROCM target
  - :py:func:`tvm.target.mali` create Mali target
  - :py:func:`tvm.target.intel_graphics` create Intel Graphics target
class_docstr_tok: ["Target","device","information",",","use","through","TVM","API",".","Note","--","--","You","can","create","target","using","the","constructor","or","the","following","functions","-",":","py",":","func",":","`","tvm.target.arm_cpu","`","create","arm_cpu","target","-",":","py",":","func",":","`","tvm.target.cuda","`","create","CUDA","target","-",":","py",":","func",":","`","tvm.target.rocm","`","create","ROCM","target","-",":","py",":","func",":","`","tvm.target.mali","`","create","Mali","target","-",":","py",":","func",":","`","tvm.target.intel_graphics","`","create","Intel","Graphics","target"]
docstr: Given a single target-like object, returns the TVM Target object representing it.
  Can convert from:
  - None (to None).
  - An existing TVM Target object.
  - A string, eg "cuda" or "cuda -arch=sm_80"
  - A Python dictionary, eg {"kind": "cuda", "arch": "sm_80" }
docstr_tok: ["Given","a","single","target-like","object",",","returns","the","TVM","Target","object","representing","it",".","Can","convert","from",":","-","None","(","to","None",")",".","-","An","existing","TVM","Target","object",".","-","A","string",",","eg","``","cuda","''","or","``","cuda","-arch=sm_80","''","-","A","Python","dictionary",",","eg","{","``","kind","''",":","``","cuda","''",",","``","arch","''",":","``","sm_80","''","}"]
code: def canon_target(target):
      """Given a single target-like object, returns the TVM Target object representing it.
      Can convert from:
      - None (to None).
      - An existing TVM Target object.
      - A string, eg "cuda" or "cuda -arch=sm_80"
      - A Python dictionary, eg {"kind": "cuda", "arch": "sm_80" }
      """
      if target is None:
          return None
      if isinstance(target, Target):
          return target
      return Target(target)
  
imports: import json
  import re
  import warnings
  from typing import Union
  import tvm._ffi
  from tvm._ffi import register_func
  from tvm._ffi.runtime_ctypes import Device
  from tvm.runtime import Object, convert
  from tvm.runtime.container import String
  from tvm.ir.container import Map, Array
  from .None import _ffi_api
label_desc: Use image node_id 28 for calling the Target obj's underlying member method code with example usage: obj.canon_target(target) and returns: Target, None, target