docs: def insert_synapses(self, cell, cellindex, synParams, idx = np.array([]),
                          X='EX', SpCell = np.array([]),
                          synDelays = None):
          """
          Insert synapse with `parameters`=`synparams` on cell=cell, with
          segment indexes given by `idx`. `SpCell` and `SpTimes` picked from
          Brunel network simulation
  
  
          Parameters
          ----------
          cell : `LFPy.Cell` instance
              Postsynaptic target cell.
          cellindex : int
              Index of cell in population.
          synParams : dict
              Parameters passed to `LFPy.Synapse`.
          idx : numpy.ndarray
              Postsynaptic compartment indices.
          X : str
              presynaptic population name
          SpCell : numpy.ndarray
              Presynaptic spiking cells.
          synDelays : numpy.ndarray
              Per connection specific delays.
  
  
          Returns
          -------
          None
  
  
          See also
          --------
          Population.insert_all_synapses
  
          """
          #Insert synapses in an iterative fashion
          try:
              spikes = self.networkSim.dbs[X].select(SpCell[:idx.size])
          except AttributeError as ae:
              raise ae, 'could not open CachedNetwork database objects'
  
  
          #apply synaptic delays
          if synDelays is not None and idx.size > 0:
              for i, delay in enumerate(synDelays):
                  if spikes[i].size > 0:
                      spikes[i] += delay
  
          #create synapse events:
          for i in range(idx.size):
              if len(spikes[i]) == 0:
                  pass
                  #print 'no spike times, skipping network cell #%i' % SpCell[i]
              else:
                  synParams.update({'idx' : idx[i]})
                  # Create synapse(s) and setting times using class LFPy.Synapse
                  synapse = LFPy.Synapse(cell, **synParams)
                  #SpCell is a vector, or do not exist
                  synapse.set_spike_times(spikes[i] + cell.tstartms)