              return [GoldParse.from_annot_tuples(doc, sent_tuples)
                      for doc, (sent_tuples, brackets)
                      in zip(docs, paragraph_tuples)]
  
      @staticmethod
      def walk_corpus(path):
          if not path.is_dir():
              return [path]
          paths = [path]
          locs = []
          seen = set()
          for path in paths:
              if str(path) in seen:
                  continue
              seen.add(str(path))
              if path.parts[-1].startswith('.'):
                  continue
              elif path.is_dir():
                  paths.extend(path.iterdir())
              elif path.parts[-1].endswith('.json'):
                  locs.append(path)
          return locs
  
  
  def add_noise(orig, noise_level):
      if random.random() >= noise_level:
          return orig
      elif type(orig) == list:
 
</s> remove     @property
    def train_tuples(self):
 </s> add         # Write temp directory with one doc per file, so we can shuffle
        # and stream
        self.tmp_dir = Path(tempfile.mkdtemp())
        self.write_msgpack(self.tmp_dir / 'train', train)
        self.write_msgpack(self.tmp_dir / 'dev', dev)

    def __del__(self):
        shutil.rmtree(self.tmp_dir)

    @staticmethod
    def write_msgpack(directory, doc_tuples):
        if not directory.exists():
            directory.mkdir()
        for i, doc_tuple in enumerate(doc_tuples):
            with open(directory / '{}.msg'.format(i), 'wb') as file_:
                msgpack.dump([doc_tuple], file_, use_bin_type=True, encoding='utf8')
    
    @staticmethod
    def walk_corpus(path):
        path = util.ensure_path(path)
        if not path.is_dir():
            return [path]
        paths = [path]
        locs = []
        seen = set()
        for path in paths:
            if str(path) in seen:
                continue
            seen.add(str(path))
            if path.parts[-1].startswith('.'):
                continue
            elif path.is_dir():
                paths.extend(path.iterdir())
            elif path.parts[-1].endswith('.json'):
                locs.append(path)
        return locs

    @staticmethod
    def read_tuples(locs, limit=0): </s> remove             return [GoldParse.from_annot_tuples(doc, sent_tuples)
 </s> add             return [GoldParse.from_annot_tuples(doc, sent_tuples,
                                                make_projective=make_projective) </s> remove                                                 paragraph_tuples[0][0])]
 </s> add                                                 paragraph_tuples[0][0],
                                                make_projective=make_projective)] </s> remove def align(cand_words, gold_words):
    cost, edit_path = _min_edit_path(cand_words, gold_words)
    alignment = []
    i_of_gold = 0
    for move in edit_path:
        if move == 'M':
            alignment.append(i_of_gold)
            i_of_gold += 1
        elif move == 'S':
            alignment.append(None)
            i_of_gold += 1
        elif move == 'D':
            alignment.append(None)
        elif move == 'I':
            i_of_gold += 1
        else:
            raise Exception(move)
    return alignment


 </s> add  </s> remove 
cdef int get_action(const TokenPatternC* pattern, const TokenC* token) nogil:
    lookahead = &pattern[1]
    for attr in pattern.attrs[:pattern.nr_attr]:
        if get_token_attr(token, attr.attr) != attr.value:
            if pattern.quantifier == ONE:
                return REJECT
            elif pattern.quantifier == ZERO:
                return ACCEPT if lookahead.nr_attr == 0 else ADVANCE
            elif pattern.quantifier in (ZERO_ONE, ZERO_PLUS):
                return ACCEPT_PREV if lookahead.nr_attr == 0 else ADVANCE_ZERO
            else:
                return PANIC
    if pattern.quantifier == ZERO:
        return REJECT
    elif lookahead.nr_attr == 0:
        return ACCEPT
    elif pattern.quantifier in (ONE, ZERO_ONE):
        return ADVANCE
    elif pattern.quantifier == ZERO_PLUS:
        # This is a bandaid over the 'shadowing' problem described here:
        # https://github.com/explosion/spaCy/issues/864
        next_action = get_action(lookahead, token)
        if next_action is REJECT:
            return REPEAT
        else:
            return ADVANCE_ZERO
    else:
        return PANIC


 </s> add 
              return [GoldParse.from_annot_tuples(doc, sent_tuples)
                      for doc, (sent_tuples, brackets)
                      in zip(docs, paragraph_tuples)]
  



















  
  def add_noise(orig, noise_level):
      if random.random() >= noise_level:
          return orig
      elif type(orig) == list:
keep keep keep keep replace replace replace replace replace replace replace replace replace replace replace replace replace replace replace replace replace replace replace keep keep keep keep keep
 Revert "Merge branch 'develop' of https://github.com/explosion/spaCy into develop"

This reverts commit c9ba3d3c2dc7067cf8bd55f878cec45a8c6d73d4, reversing
changes made to 92c26a35d425d4e8ca1b805ea776ea10f5ded3df. 
spacy/gold.pyx