class_docstr: A metaclass for generating placeholder objects for unavailable symbols
  
  This metaclass allows errors to be deferred from import time to the time
  that a symbol is actually used in order to streamline the usage of optional
  dependencies. This is particularly useful for attempted imports of GPU-only
  modules which will only be invoked if GPU-only functionality is
  specifically used.
  
  If an attempt to import a symbol fails, this metaclass is used to generate
  a class which stands in for that symbol. Any attempt to call the symbol
  (instantiate the class) or access its attributes will throw an
  UnavailableError exception. Furthermore, this class can be used in
  e.g. isinstance checks, since it will (correctly) fail to match any
  instance it is compared against.
  
  In addition to calls and attribute access, a number of dunder methods are
  implemented so that other common usages of imported symbols (e.g.
  arithmetic) throw an UnavailableError, but this is not guaranteed for
  all possible uses. In such cases, other exception types (typically
  TypeErrors) will be thrown instead.
class_docstr_tok: ["A","metaclass","for","generating","placeholder","objects","for","unavailable","symbols","This","metaclass","allows","errors","to","be","deferred","from","import","time","to","the","time","that","a","symbol","is","actually","used","in","order","to","streamline","the","usage","of","optional","dependencies",".","This","is","particularly","useful","for","attempted","imports","of","GPU-only","modules","which","will","only","be","invoked","if","GPU-only","functionality","is","specifically","used",".","If","an","attempt","to","import","a","symbol","fails",",","this","metaclass","is","used","to","generate","a","class","which","stands","in","for","that","symbol",".","Any","attempt","to","call","the","symbol","(","instantiate","the","class",")","or","access","its","attributes","will","throw","an","UnavailableError","exception",".","Furthermore",",","this","class","can","be","used","in","e.g",".","isinstance","checks",",","since","it","will","(","correctly",")","fail","to","match","any","instance","it","is","compared","against",".","In","addition","to","calls","and","attribute","access",",","a","number","of","dunder","methods","are","implemented","so","that","other","common","usages","of","imported","symbols","(","e.g",".","arithmetic",")","throw","an","UnavailableError",",","but","this","is","not","guaranteed","for","all","possible","uses",".","In","such","cases",",","other","exception","types","(","typically","TypeErrors",")","will","be","thrown","instead","."]
code: def __truediv__(cls, other):
      raise UnavailableError(cls._msg)
  
imports: import importlib
  import traceback
  from contextlib import contextmanager
  from cuml.internals.device_support import CPU_ENABLED, GPU_ENABLED
  from cuml.internals import logger
label_desc: Use image node_id 30 for calling the UnavailableMeta obj's underlying member method code with example usage: obj.__truediv__(cls, other) without return types