nodes: 0, module; 1, function_definition; 2, function_name:_contiguous_offsets; 3, parameters; 4, block; 5, identifier:self; 6, identifier:offsets; 7, expression_statement; 8, expression_statement; 9, for_statement; 10, return_statement; 11, comment:"""
          Sorts the input list of integer offsets,
          ensures that values are contiguous.
          """; 12, call; 13, identifier:i; 14, call; 15, block; 16, identifier:offsets; 17, attribute; 18, argument_list; 19, identifier:range; 20, argument_list; 21, assert_statement; 22, identifier:offsets; 23, identifier:sort; 24, binary_operator:len(offsets) - 1; 25, comparison_operator:offsets[i] + 1 == offsets[i + 1]; 26, binary_operator:"Offsets not contiguous: %s" % (offsets,); 27, call; 28, integer:1; 29, binary_operator:offsets[i] + 1; 30, subscript; 31, string:"Offsets not contiguous: %s"; 32, tuple; 33, identifier:len; 34, argument_list; 35, subscript; 36, integer:1; 37, identifier:offsets; 38, binary_operator:i + 1; 39, identifier:offsets; 40, identifier:offsets; 41, identifier:offsets; 42, identifier:i; 43, identifier:i; 44, integer:1
code: def _contiguous_offsets(self, offsets):
          """
          Sorts the input list of integer offsets,
          ensures that values are contiguous.
          """
          offsets.sort()
          for i in range(len(offsets) - 1):
              assert offsets[i] + 1 == offsets[i + 1], \
                  "Offsets not contiguous: %s" % (offsets,)
          return offsets