code: def _parse_bonds_block(sdf, n_atoms, n_bonds):
      # The first two fields are the indexes of the atoms included in this bond
      # (starting from 1). The third field defines the type of bond, and the
      # fourth the stereoscopy of the bond.
      # There are a further three fields, with 3 characters each, but these are
      # rarely used and can be left blank.
  
      start = HEADER_SIZE + n_atoms + 1  # Add 1 for counts line
      stop = start + n_bonds
      values = sdf[start:stop]
  
      bonds = []
      for v in values:
          start_atom = int(v[:3]) - 1
          end_atom = int(v[3:6]) - 1
          type_ = int(v[6:9])
          stereo = int(v[9:12])
          info = np.array(
              [int(v[pos : pos + 3]) for pos in range(12, len(v), 3)]
          )
          bonds.append(
              {
                  "start_atom": start_atom,
                  "end_atom": end_atom,
                  "type": type_,
                  "stereo": stereo,
                  "info": info,
              }
          )
      return bonds
  
imports: import ast
  import sys
  import joblib
  import networkx
  import numpy
  import pandas
  import scipy.sparse
  from spektral.data.graph import Graph
label_desc: Use image node_id 17 for calling a global function with example usage: _parse_bonds_block(sdf, n_atoms, n_bonds) and returns: bonds