code: def _osx_gpudata():
      '''
      num_gpus: int
      gpus:
        - vendor: nvidia|amd|ati|...
          model: string
      '''
  
      gpus = []
      try:
          pcictl_out = __salt__['cmd.run']('system_profiler SPDisplaysDataType')
  
          for line in pcictl_out.splitlines():
              fieldname, _, fieldval = line.partition(': ')
              if fieldname.strip() == "Chipset Model":
                  vendor, _, model = fieldval.partition(' ')
                  vendor = vendor.lower()
                  gpus.append({'vendor': vendor, 'model': model})
  
      except OSError:
          pass
  
      grains = {}
      grains['num_gpus'] = len(gpus)
      grains['gpus'] = gpus
      return grainf _osx_gpudata():
      '''
      num_gpus: int
      gpus:
        - vendor: nvidia|amd|ati|...
          model: string
      '''
  
      gpus = []
      try:
          pcictl_out = __salt__['cmd.run']('system_profiler SPDisplaysDataType')
  
          for line in pcictl_out.splitlines():
              fieldname, _, fieldval = line.partition(': ')
              if fieldname.strip() == "Chipset Model":
                  vendor, _, model = fieldval.partition(' ')
                  vendor = vendor.lower()
                  gpus.append({'vendor': vendor, 'model': model})
  
      except OSError:
          pass
  
      grains = {}
      grains['num_gpus'] = len(gpus)
      grains['gpus'] = gpus
      return grains
docs: num_gpus: int
      gpus:
        - vendor: nvidia|amd|ati|...
          model: string