class_docstr: Compiler is used to convert Function and Variable instances into
  ready-to-use GLSL code. This class handles name mangling to ensure that
  there are no name collisions amongst global objects. The final name of
  each object may be retrieved using ``Compiler.__getitem__(obj)``.
  
  Accepts multiple root Functions as keyword arguments. ``compile()`` then
  returns a dict of GLSL strings with the same keys.
  
  Example::
  
      # initialize with two main functions
      compiler = Compiler(vert=v_func, frag=f_func)
  
      # compile and extract shaders
      code = compiler.compile()
      v_code = code['vert']
      f_code = code['frag']
  
      # look up name of some object
      name = compiler[obj]
docstr: Return True if *name* is available for *obj* in *shaders*.
code: def _name_available(self, obj, name, shaders):
      """Return True if *name* is available for *obj* in *shaders*."""
      if name in self._global_ns:
          return False
      shaders = self.shaders if self._is_global(obj) else shaders
      for shader in shaders:
          if name in self._shader_ns[shader]:
              return False
      return True
  
file_path: vispy/vispy/visuals/shaders/compiler.py
imports: from __future__ import division
  from ...None import gloo
label_desc: Use image node_id 7 for calling the Compiler obj's underlying member method code with example usage: obj._name_available(obj, name, shaders) and returns: True, False, False