code: def instantiate_probes(probes, instruments):
      
  
      probe_instances = {}
      for name, sub_dict in probes.items():
          assert isinstance(sub_dict, dict)
          assert "probe_name" in sub_dict
          assert "instrument_name" in sub_dict
  
          probe_name = sub_dict['probe_name']
          instrument_name = sub_dict['instrument_name']
  
          if "probe_info" in sub_dict:
              probe_info = sub_dict['probe_info']
          else:
              probe_info = ''
  
          assert instrument_name in instruments, "{:s} not in {:s}".format(instrument_name, list(instruments.keys()))
          assert probe_name in instruments[instrument_name]._PROBES
  
          probe_instances.update({name: Probe(instruments[instrument_name], probe_name, name, probe_info)})
  
      return probe_instances
docs: Creates instances of the probes inputed;
  
       Args:
           probes: probes is a nested dictionary with
              (key, sub_dict ) = (name of the probe, {'probe_name': value_probe, 'instrument_name': value_inst}),
              where value_probe is a valid name of a probe in intrument with name value_inst
           for example script = {'detector signal': {'probe_name': "AI0", 'instrument_name': "my_DAQ"}}
  
       Returns:
           a dictionary with (key,sub_dict) = (name of probe, reference to probe) for all of the probes
           passed to the function that were successfully imported and initialized. Otherwise, probes are omitted
           in the outputted list.