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: Create a new context 
docstr_tok: ["Create","a","new","context"]
code: def __enter__(self):
      """Create a new context"""
      _NVML.load()
      _check_return(_NVML.get_function("nvmlInit_v2")())
      return self
  
imports: import threading
  from ctypes import CDLL, POINTER, Structure, byref, c_uint, c_ulonglong, create_string_buffer
label_desc: Use image node_id 1 for calling the NVMLContext obj's underlying member method code with example usage: obj.__enter__() and returns: self