code: def _gen_property_table(self):
          
          headers = ['Property Name', 'Type', 'Value', 'Default Value']
  
          table = []
          for propval in sorted(self._properties.itervalues(),
                                key=lambda pval: pval.name.upper()):
              table.append([propval.name,
                  np.dtype(propval.dtype).name,
                  getattr(self, propval.name),
                  propval.default])
  
          return table, headers
docs: 2D array describing each registered property
          together with headers - for use in __str__