class_docstr: A `SpanField` is a pair of inclusive, zero-indexed (start, end) indices into a
  :class:`~allennlp.data.fields.sequence_field.SequenceField`, used to represent a span of text.
  Because it's a pair of indices into a :class:`SequenceField`, we take one of those as input
  to make the span's dependence explicit and to validate that the span is well defined.
  
  # Parameters
  
  span_start : `int`, required.
      The index of the start of the span in the :class:`SequenceField`.
  span_end : `int`, required.
      The inclusive index of the end of the span in the :class:`SequenceField`.
  sequence_field : `SequenceField`, required.
      A field containing the sequence that this `SpanField` is a span inside.
class_docstr_tok: ["A","`","SpanField","`","is","a","pair","of","inclusive",",","zero-indexed","(","start",",","end",")","indices","into","a",":","class",":","`","~allennlp.data.fields.sequence_field.SequenceField","`",",","used","to","represent","a","span","of","text",".","Because","it","'s","a","pair","of","indices","into","a",":","class",":","`","SequenceField","`",",","we","take","one","of","those","as","input","to","make","the","span","'s","dependence","explicit","and","to","validate","that","the","span","is","well","defined",".","#","Parameters","span_start",":","`","int","`",",","required",".","The","index","of","the","start","of","the","span","in","the",":","class",":","`","SequenceField","`",".","span_end",":","`","int","`",",","required",".","The","inclusive","index","of","the","end","of","the","span","in","the",":","class",":","`","SequenceField","`",".","sequence_field",":","`","SequenceField","`",",","required",".","A","field","containing","the","sequence","that","this","`","SpanField","`","is","a","span","inside","."]
code: def __init__(
      self,
      span_start: int,
      span_end: int,
      sequence_field: SequenceField,
  ) -> None:
      self.span_start = span_start
      self.span_end = span_end
      self.sequence_field = sequence_field
  
      if not isinstance(span_start, int) or not isinstance(
          span_end, int
      ):
          raise TypeError(
              f"SpanFields must be passed integer indices. Found span indices: "
              f"({span_start}, {span_end}) with types "
              f"({type(span_start)} {type(span_end)})"
          )
      if span_start > span_end:
          raise ValueError(
              f"span_start must be less than span_end, "
              f"but found ({span_start}, {span_end})."
          )
  
      if span_end > self.sequence_field.sequence_length() - 1:
          raise ValueError(
              f"span_end must be <= len(sequence_length) - 1, but found "
              f"{span_end} and {self.sequence_field.sequence_length() - 1} respectively."
          )
  
file_path: allennlp/allennlp/data/fields/span_field.py
imports: from typing import Dict, Tuple
  import torch
  from allennlp.data.fields.field import Field
  from allennlp.data.fields.sequence_field import SequenceField
label_desc: Use image node_id 1 to create a new SpanField object from inherited base classes: Field with example: obj = SpanField(span_start, span_end, sequence_field)