code: def proc_decorator(req_set):
          
  
          def decorator(func):
              @wraps(func)
              def inner(self, *args, **kwargs):
                  proc = func.__name__.lower()
                  inner.proc_decorator = kwargs
                  self.logger.debug("processing proc:{}".format(func.__name__))
                  self.logger.debug(req_set)
                  self.logger.debug("kwargs type: " + str(type(kwargs)))
                  if proc in ['hplogistic', 'hpreg']:
                      kwargs['ODSGraphics'] = kwargs.get('ODSGraphics', False)
                  if proc == 'hpcluster':
                      proc = 'hpclus'
                  legal_set = set(kwargs.keys())
                  self.logger.debug(legal_set)
                  return SASProcCommons._run_proc(self, proc, req_set, legal_set, **kwargs)
              return inner
          return decorator
docs: Decorator that provides the wrapped function with an attribute 'actual_kwargs'
          containing just those keyword arguments actually passed in to the function.