code: def properties(self, var_or_nodeid, as_list=False):
          
          props = []
          if var_or_nodeid in self._vars:
              props = self._vars[var_or_nodeid]['props']
          elif var_or_nodeid in self._eps:
              var = self._eps[var_or_nodeid][3].get(IVARG_ROLE)
              props = self._vars.get(var, {}).get('props', [])
          else:
              raise KeyError(var_or_nodeid)
          if not as_list:
              props = dict(props)
          return props
docs: Return a dictionary of variable properties for *var_or_nodeid*.
  
          Args:
              var_or_nodeid: if a variable, return the properties
                  associated with the variable; if a nodeid, return the
                  properties associated with the intrinsic variable of the
                  predication given by the nodeid