code: def getProvIden(self, provstack):
          '''
          Returns the iden corresponding to a provenance stack and stores if it hasn't seen it before
          '''
          iden = _providen(provstack)
          misc, frames = provstack
          # Convert each frame back from (k, v) tuples to a dict
          dictframes = [(typ, {k: v for (k, v) in info}) for (typ, info) in frames]
          bytz = s_msgpack.en((misc, dictframes))
          didwrite = self.slab.put(iden, bytz, overwrite=False, db=self.db)
          if didwrite:
              self.provseq.save([iden])
  
          return idef getProvIden(self, provstack):
          '''
          Returns the iden corresponding to a provenance stack and stores if it hasn't seen it before
          '''
          iden = _providen(provstack)
          misc, frames = provstack
          # Convert each frame back from (k, v) tuples to a dict
          dictframes = [(typ, {k: v for (k, v) in info}) for (typ, info) in frames]
          bytz = s_msgpack.en((misc, dictframes))
          didwrite = self.slab.put(iden, bytz, overwrite=False, db=self.db)
          if didwrite:
              self.provseq.save([iden])
  
          return iden
docs: Returns the iden corresponding to a provenance stack and stores if it hasn't seen it before