code: def _cicled(self, s1, s2):
          
          rows = len(s1) + 1
          cols = len(s2) + 1
          prev = None
          if numpy:
              cur = numpy.arange(cols)
          else:
              cur = range(cols)
  
          for r in range(1, rows):
              prev, cur = cur, [r] + [0] * (cols - 1)
              for c in range(1, cols):
                  deletion = prev[c] + 1
                  insertion = cur[c - 1] + 1
                  dist = self.test_func(s1[r - 1], s2[c - 1])
                  edit = prev[c - 1] + (not dist)
                  cur[c] = min(edit, deletion, insertion)
          return cur[-1]
docs: source:
          https://github.com/jamesturk/jellyfish/blob/master/jellyfish/_jellyfish.py#L18