docs: def find_covalent_bonds(ampal, max_range=2.2, threshold=1.1, tag=True):
      """Finds all covalent bonds in the AMPAL object.
  
      Parameters
      ----------
      ampal : AMPAL Object
          Any AMPAL object with a `get_atoms` method.
      max_range : float, optional
          Used to define the sector size, so interactions at longer ranges
          will not be found.
      threshold : float, optional
          Allows deviation from ideal covalent bond distance to be included.
          For example, a value of 1.1 would allow interactions up to 10% further
          from the ideal distance to be included.
      tag : bool, optional
          If `True`, will add the covalent bond to the tags dictionary of
          each `Atom` involved in the interaction under the `covalent_bonds`
          key.
      """
      sectors=gen_sectors(ampal.get_atoms(), max_range * 1.1)
      bonds=[]
      for sector in sectors.values():
          atoms=itertools.combinations(sector, 2)
          bonds.extend(covalent_bonds(atoms, threshold=threshold))
      bond_set=list(set(bonds))
      if tag:
          for bond in bond_set:
              a, b=bond.a, bond.b
              if 'covalent_bonds' not in a.tags:
                  a.tags['covalent_bonds']=[b]
              else:
                  a.tags['covalent_bonds'].append(b)
              if 'covalent_bonds' not in b.tags:
                  b.tags['covalent_bonds']=[a]
              else:
                  b.tags['covalent_bonds'].append(a)
      return bond_set