class_docstr: Creates a context to query information
  
  Example:
  
      with NVMLContext() as ctx:
          num_gpus = ctx.num_devices()
          for device in ctx.devices():
              print(device.memory())
              print(device.utilization())
docstr: Returns:
      [NvidiaDevice]: a list of devices
docstr_tok: ["Returns",":","[","NvidiaDevice","]",":","a","list","of","devices"]
code: def devices(self):
      """
      Returns:
          [NvidiaDevice]: a list of devices
      """
      return [self.device(i) for i in range(self.num_devices())]
  
imports: import threading
  from ctypes import CDLL, POINTER, Structure, byref, c_uint, c_ulonglong, create_string_buffer
label_desc: Use image node_id 4 for calling the NVMLContext obj's underlying member method code with example usage: obj.devices() and returns: unknown