from pathlib import Path
nml_file = Path.home() / "work_data/toolboxes/NeuroML2/examples/NML2_Inputs.nml"
text = nml_file.read_text()
for line in text.split('\n'):
stripped = line.strip()
if stripped.startswith('<') and 'id=' in stripped and not stripped.startswith('</') \
and not stripped.startswith('<!--'):
print(stripped[:130])<expTwoSynapse id="synInput" gbase="8nS" erev="20mV" tauRise="1ms" tauDecay="5ms"/><!-- Will be used below... -->
<expTwoSynapse id="synInputFast" gbase="1nS" erev="20mV" tauRise="0.2ms" tauDecay="1ms"/><!-- Will be used below... -->
<expThreeSynapse id="synInputFastTwo" gbase1="1.5nS" tauRise="0.1ms" tauDecay1="0.7ms" gbase2="0.5nS" tauDecay2="2.5ms" erev="0mV
<pulseGenerator id="pulseGen0" delay="50ms" duration="200ms" amplitude="1 nA" />
<sineGenerator id="sg0" phase="0" delay="50ms" duration="200ms" amplitude="1.4nA" period="50ms"/>
<rampGenerator id="rg0" delay="50ms" duration="200ms" startAmplitude="0.5nA" finishAmplitude="4nA" baselineAmplitude="0nA"/>
<compoundInput id="ci0">
<pulseGenerator id="pg1" delay="50ms" duration="200ms" amplitude=".8 nA" />
<pulseGenerator id="pg2" delay="100ms" duration="100ms" amplitude=".4 nA" />
<sineGenerator id="sg0" phase="0" delay="125ms" duration="50ms" amplitude=".4nA" period="25ms"/>
<voltageClampTriple id="vClamp0"
<spikeArray id="spkArr">
<spike id="0" time="50 ms"/>
<spike id="1" time="100 ms"/>
<spike id="2" time="150 ms"/>
<spike id="3" time="155 ms"/>
<spike id="4" time="250 ms"/>
<timedSynapticInput id="synTrain" synapse="synInputFastTwo" spikeTarget="./synInputFastTwo">
<spike id="0" time="2 ms"/>
<spike id="1" time="15 ms"/>
<spike id="2" time="27 ms"/>
<spike id="3" time="40 ms"/>
<spike id="4" time="45 ms"/>
<spike id="5" time="50 ms"/>
<spike id="6" time="52 ms"/>
<spike id="7" time="54 ms"/>
<spike id="8" time="54.5 ms"/>
<spike id="9" time="54.6 ms"/>
<spike id="10" time="54.7 ms"/>
<spike id="11" time="54.8 ms"/>
<spike id="12" time="54.9 ms"/>
<spike id="13" time="55 ms"/>
<spike id="14" time="55.1 ms"/>
<spike id="15" time="55.2 ms"/>
<spikeGenerator id="spikeGenRegular" period="20 ms"/>
<spikeGeneratorRandom id="spikeGenRandom" minISI="10 ms"
<spikeGeneratorPoisson id="spikeGenPoisson" averageRate="50 Hz"/>
<spikeGeneratorRefPoisson id="spikeGenRefPoisson" averageRate="50 Hz" minimumISI="10 ms"/>
<poissonFiringSynapse id="poissonFiringSyn" averageRate="10 Hz" synapse="synInput" spikeTarget="./synInput"/>
<transientPoissonFiringSynapse id="transPoissonFiringSyn" delay="50ms" duration="50ms" averageRate="300 Hz" synapse="synInputFast"
<transientPoissonFiringSynapse id="transPoissonFiringSyn2" delay="50ms" duration="500ms" averageRate="10 Hz" synapse="synInputFast
