Fix bug parsing #excitation_file command

这个提交包含在:
nmannall
2024-04-15 16:50:20 +01:00
父节点 c36e50eb35
当前提交 eb8d2602cf

查看文件

@@ -61,7 +61,9 @@ def process_multicmds(multicmds):
for cmdinstance in multicmds[cmdname]: for cmdinstance in multicmds[cmdname]:
tmp = cmdinstance.split() tmp = cmdinstance.split()
if len(tmp) != 4: if len(tmp) != 4:
logger.exception("'" + cmdname + ": " + " ".join(tmp) + "'" + " requires exactly four parameters") logger.exception(
"'" + cmdname + ": " + " ".join(tmp) + "'" + " requires exactly four parameters"
)
raise ValueError raise ValueError
waveform = Waveform(wave_type=tmp[0], amp=float(tmp[1]), freq=float(tmp[2]), id=tmp[3]) waveform = Waveform(wave_type=tmp[0], amp=float(tmp[1]), freq=float(tmp[2]), id=tmp[3])
@@ -88,7 +90,9 @@ def process_multicmds(multicmds):
end=float(tmp[7]), end=float(tmp[7]),
) )
else: else:
logger.exception("'" + cmdname + ": " + " ".join(tmp) + "'" + " requires at least six parameters") logger.exception(
"'" + cmdname + ": " + " ".join(tmp) + "'" + " requires at least six parameters"
)
raise ValueError raise ValueError
scene_objects.append(voltage_source) scene_objects.append(voltage_source)
@@ -98,11 +102,20 @@ def process_multicmds(multicmds):
for cmdinstance in multicmds[cmdname]: for cmdinstance in multicmds[cmdname]:
tmp = cmdinstance.split() tmp = cmdinstance.split()
if len(tmp) < 5: if len(tmp) < 5:
logger.exception("'" + cmdname + ": " + " ".join(tmp) + "'" + " requires at least five parameters") logger.exception(
"'"
+ cmdname
+ ": "
+ " ".join(tmp)
+ "'"
+ " requires at least five parameters"
)
raise ValueError raise ValueError
if len(tmp) == 5: if len(tmp) == 5:
hertzian_dipole = HertzianDipole( hertzian_dipole = HertzianDipole(
polarisation=tmp[0], p1=(float(tmp[1]), float(tmp[2]), float(tmp[3])), waveform_id=tmp[4] polarisation=tmp[0],
p1=(float(tmp[1]), float(tmp[2]), float(tmp[3])),
waveform_id=tmp[4],
) )
elif len(tmp) == 7: elif len(tmp) == 7:
hertzian_dipole = HertzianDipole( hertzian_dipole = HertzianDipole(
@@ -113,7 +126,9 @@ def process_multicmds(multicmds):
end=float(tmp[6]), end=float(tmp[6]),
) )
else: else:
logger.exception("'" + cmdname + ": " + " ".join(tmp) + "'" + " too many parameters") logger.exception(
"'" + cmdname + ": " + " ".join(tmp) + "'" + " too many parameters"
)
raise ValueError raise ValueError
scene_objects.append(hertzian_dipole) scene_objects.append(hertzian_dipole)
@@ -123,11 +138,20 @@ def process_multicmds(multicmds):
for cmdinstance in multicmds[cmdname]: for cmdinstance in multicmds[cmdname]:
tmp = cmdinstance.split() tmp = cmdinstance.split()
if len(tmp) < 5: if len(tmp) < 5:
logger.exception("'" + cmdname + ": " + " ".join(tmp) + "'" + " requires at least five parameters") logger.exception(
"'"
+ cmdname
+ ": "
+ " ".join(tmp)
+ "'"
+ " requires at least five parameters"
)
raise ValueError raise ValueError
if len(tmp) == 5: if len(tmp) == 5:
magnetic_dipole = MagneticDipole( magnetic_dipole = MagneticDipole(
polarisation=tmp[0], p1=(float(tmp[1]), float(tmp[2]), float(tmp[3])), waveform_id=tmp[4] polarisation=tmp[0],
p1=(float(tmp[1]), float(tmp[2]), float(tmp[3])),
waveform_id=tmp[4],
) )
elif len(tmp) == 7: elif len(tmp) == 7:
magnetic_dipole = MagneticDipole( magnetic_dipole = MagneticDipole(
@@ -138,7 +162,9 @@ def process_multicmds(multicmds):
end=float(tmp[6]), end=float(tmp[6]),
) )
else: else:
logger.exception("'" + cmdname + ": " + " ".join(tmp) + "'" + " too many parameters") logger.exception(
"'" + cmdname + ": " + " ".join(tmp) + "'" + " too many parameters"
)
raise ValueError raise ValueError
scene_objects.append(magnetic_dipole) scene_objects.append(magnetic_dipole)
@@ -148,7 +174,9 @@ def process_multicmds(multicmds):
for cmdinstance in multicmds[cmdname]: for cmdinstance in multicmds[cmdname]:
tmp = cmdinstance.split() tmp = cmdinstance.split()
if len(tmp) < 6: if len(tmp) < 6:
logger.exception("'" + cmdname + ": " + " ".join(tmp) + "'" + " requires at least six parameters") logger.exception(
"'" + cmdname + ": " + " ".join(tmp) + "'" + " requires at least six parameters"
)
raise ValueError raise ValueError
if len(tmp) == 6: if len(tmp) == 6:
@@ -168,17 +196,19 @@ def process_multicmds(multicmds):
end=tmp[7], end=tmp[7],
) )
else: else:
logger.exception("'" + cmdname + ": " + " ".join(tmp) + "'" + " too many parameters") logger.exception(
"'" + cmdname + ": " + " ".join(tmp) + "'" + " too many parameters"
)
raise ValueError raise ValueError
scene_objects.append(tl) scene_objects.append(tl)
cmd = "#excitation_file" cmdname = "#excitation_file"
if multicmds[cmd] is not None: if multicmds[cmdname] is not None:
for cmdinstance in multicmds[cmdname]: for cmdinstance in multicmds[cmdname]:
tmp = cmdinstance.split() tmp = cmdinstance.split()
if len(tmp) not in [1, 3]: if len(tmp) not in [1, 3]:
logger.exception(f"{cmd} requires either one or three parameter(s)") logger.exception(f"{cmdname} requires either one or three parameter(s)")
raise ValueError raise ValueError
if len(tmp) > 1: if len(tmp) > 1:
@@ -193,12 +223,23 @@ def process_multicmds(multicmds):
for cmdinstance in multicmds[cmdname]: for cmdinstance in multicmds[cmdname]:
tmp = cmdinstance.split() tmp = cmdinstance.split()
if len(tmp) != 3 and len(tmp) < 5: if len(tmp) != 3 and len(tmp) < 5:
logger.exception("'" + cmdname + ": " + " ".join(tmp) + "'" + " has an incorrect number of parameters") logger.exception(
"'"
+ cmdname
+ ": "
+ " ".join(tmp)
+ "'"
+ " has an incorrect number of parameters"
)
raise ValueError raise ValueError
if len(tmp) == 3: if len(tmp) == 3:
rx = Rx(p1=(float(tmp[0]), float(tmp[1]), float(tmp[2]))) rx = Rx(p1=(float(tmp[0]), float(tmp[1]), float(tmp[2])))
else: else:
rx = Rx(p1=(float(tmp[0]), float(tmp[1]), float(tmp[2])), id=tmp[3], outputs=" ".join(tmp[4:])) rx = Rx(
p1=(float(tmp[0]), float(tmp[1]), float(tmp[2])),
id=tmp[3],
outputs=" ".join(tmp[4:]),
)
scene_objects.append(rx) scene_objects.append(rx)
@@ -207,7 +248,9 @@ def process_multicmds(multicmds):
for cmdinstance in multicmds[cmdname]: for cmdinstance in multicmds[cmdname]:
tmp = cmdinstance.split() tmp = cmdinstance.split()
if len(tmp) != 9: if len(tmp) != 9:
logger.exception("'" + cmdname + ": " + " ".join(tmp) + "'" + " requires exactly nine parameters") logger.exception(
"'" + cmdname + ": " + " ".join(tmp) + "'" + " requires exactly nine parameters"
)
raise ValueError raise ValueError
p1 = (float(tmp[0]), float(tmp[1]), float(tmp[2])) p1 = (float(tmp[0]), float(tmp[1]), float(tmp[2]))
@@ -222,7 +265,14 @@ def process_multicmds(multicmds):
for cmdinstance in multicmds[cmdname]: for cmdinstance in multicmds[cmdname]:
tmp = cmdinstance.split() tmp = cmdinstance.split()
if len(tmp) != 11: if len(tmp) != 11:
logger.exception("'" + cmdname + ": " + " ".join(tmp) + "'" + " requires exactly eleven parameters") logger.exception(
"'"
+ cmdname
+ ": "
+ " ".join(tmp)
+ "'"
+ " requires exactly eleven parameters"
)
raise ValueError raise ValueError
p1 = (float(tmp[0]), float(tmp[1]), float(tmp[2])) p1 = (float(tmp[0]), float(tmp[1]), float(tmp[2]))
@@ -245,10 +295,14 @@ def process_multicmds(multicmds):
for cmdinstance in multicmds[cmdname]: for cmdinstance in multicmds[cmdname]:
tmp = cmdinstance.split() tmp = cmdinstance.split()
if len(tmp) != 5: if len(tmp) != 5:
logger.exception("'" + cmdname + ": " + " ".join(tmp) + "'" + " requires exactly five parameters") logger.exception(
"'" + cmdname + ": " + " ".join(tmp) + "'" + " requires exactly five parameters"
)
raise ValueError raise ValueError
material = Material(er=float(tmp[0]), se=float(tmp[1]), mr=float(tmp[2]), sm=float(tmp[3]), id=tmp[4]) material = Material(
er=float(tmp[0]), se=float(tmp[1]), mr=float(tmp[2]), sm=float(tmp[3]), id=tmp[4]
)
scene_objects.append(material) scene_objects.append(material)
cmdname = "#add_dispersion_debye" cmdname = "#add_dispersion_debye"
@@ -257,7 +311,14 @@ def process_multicmds(multicmds):
tmp = cmdinstance.split() tmp = cmdinstance.split()
if len(tmp) < 4: if len(tmp) < 4:
logger.exception("'" + cmdname + ": " + " ".join(tmp) + "'" + " requires at least four parameters") logger.exception(
"'"
+ cmdname
+ ": "
+ " ".join(tmp)
+ "'"
+ " requires at least four parameters"
)
raise ValueError raise ValueError
poles = int(tmp[0]) poles = int(tmp[0])
@@ -269,7 +330,9 @@ def process_multicmds(multicmds):
er_delta.append(float(tmp[pole])) er_delta.append(float(tmp[pole]))
tau.append(float(tmp[pole + 1])) tau.append(float(tmp[pole + 1]))
debye_dispersion = AddDebyeDispersion(poles=poles, er_delta=er_delta, tau=tau, material_ids=material_ids) debye_dispersion = AddDebyeDispersion(
poles=poles, er_delta=er_delta, tau=tau, material_ids=material_ids
)
scene_objects.append(debye_dispersion) scene_objects.append(debye_dispersion)
cmdname = "#add_dispersion_lorentz" cmdname = "#add_dispersion_lorentz"
@@ -278,7 +341,14 @@ def process_multicmds(multicmds):
tmp = cmdinstance.split() tmp = cmdinstance.split()
if len(tmp) < 5: if len(tmp) < 5:
logger.exception("'" + cmdname + ": " + " ".join(tmp) + "'" + " requires at least five parameters") logger.exception(
"'"
+ cmdname
+ ": "
+ " ".join(tmp)
+ "'"
+ " requires at least five parameters"
)
raise ValueError raise ValueError
poles = int(tmp[0]) poles = int(tmp[0])
@@ -303,7 +373,14 @@ def process_multicmds(multicmds):
tmp = cmdinstance.split() tmp = cmdinstance.split()
if len(tmp) < 5: if len(tmp) < 5:
logger.exception("'" + cmdname + ": " + " ".join(tmp) + "'" + " requires at least five parameters") logger.exception(
"'"
+ cmdname
+ ": "
+ " ".join(tmp)
+ "'"
+ " requires at least five parameters"
)
raise ValueError raise ValueError
poles = int(tmp[0]) poles = int(tmp[0])
@@ -315,7 +392,9 @@ def process_multicmds(multicmds):
tau.append(float(tmp[pole])) tau.append(float(tmp[pole]))
alpha.append(float(tmp[pole + 1])) alpha.append(float(tmp[pole + 1]))
drude_dispersion = AddDrudeDispersion(poles=poles, material_ids=material_ids, tau=tau, alpha=alpha) drude_dispersion = AddDrudeDispersion(
poles=poles, material_ids=material_ids, tau=tau, alpha=alpha
)
scene_objects.append(drude_dispersion) scene_objects.append(drude_dispersion)
cmdname = "#soil_peplinski" cmdname = "#soil_peplinski"
@@ -324,7 +403,14 @@ def process_multicmds(multicmds):
tmp = cmdinstance.split() tmp = cmdinstance.split()
if len(tmp) != 7: if len(tmp) != 7:
logger.exception("'" + cmdname + ": " + " ".join(tmp) + "'" + " requires at exactly seven parameters") logger.exception(
"'"
+ cmdname
+ ": "
+ " ".join(tmp)
+ "'"
+ " requires at exactly seven parameters"
)
raise ValueError raise ValueError
soil = SoilPeplinski( soil = SoilPeplinski(
sand_fraction=float(tmp[0]), sand_fraction=float(tmp[0]),
@@ -342,7 +428,14 @@ def process_multicmds(multicmds):
for cmdinstance in multicmds[cmdname]: for cmdinstance in multicmds[cmdname]:
tmp = cmdinstance.split() tmp = cmdinstance.split()
if len(tmp) != 11: if len(tmp) != 11:
logger.exception("'" + cmdname + ": " + " ".join(tmp) + "'" + " requires exactly eleven parameters") logger.exception(
"'"
+ cmdname
+ ": "
+ " ".join(tmp)
+ "'"
+ " requires exactly eleven parameters"
)
raise ValueError raise ValueError
p1 = float(tmp[0]), float(tmp[1]), float(tmp[2]) p1 = float(tmp[0]), float(tmp[1]), float(tmp[2])
@@ -357,7 +450,14 @@ def process_multicmds(multicmds):
for cmdinstance in multicmds[cmdname]: for cmdinstance in multicmds[cmdname]:
tmp = cmdinstance.split() tmp = cmdinstance.split()
if len(tmp) != 7: if len(tmp) != 7:
logger.exception("'" + cmdname + ": " + " ".join(tmp) + "'" + " requires exactly seven parameters") logger.exception(
"'"
+ cmdname
+ ": "
+ " ".join(tmp)
+ "'"
+ " requires exactly seven parameters"
)
raise ValueError raise ValueError
p1 = float(tmp[0]), float(tmp[1]), float(tmp[2]) p1 = float(tmp[0]), float(tmp[1]), float(tmp[2])
@@ -371,7 +471,14 @@ def process_multicmds(multicmds):
tmp = cmdinstance.split() tmp = cmdinstance.split()
if len(tmp) != 9: if len(tmp) != 9:
logger.exception("'" + cmdname + ": " + " ".join(tmp) + "'" + " requires at exactly nine parameters") logger.exception(
"'"
+ cmdname
+ ": "
+ " ".join(tmp)
+ "'"
+ " requires at exactly nine parameters"
)
raise ValueError raise ValueError
material_range = MaterialRange( material_range = MaterialRange(
er_lower=float(tmp[0]), er_lower=float(tmp[0]),
@@ -392,7 +499,9 @@ def process_multicmds(multicmds):
tmp = cmdinstance.split() tmp = cmdinstance.split()
if len(tmp) < 2: if len(tmp) < 2:
logger.exception("'" + cmdname + ": " + " ".join(tmp) + "'" + " requires at least two parameters") logger.exception(
"'" + cmdname + ": " + " ".join(tmp) + "'" + " requires at least two parameters"
)
raise ValueError raise ValueError
tokens = len(tmp) tokens = len(tmp)
@@ -409,7 +518,14 @@ def process_multicmds(multicmds):
tmp = cmdinstance.split() tmp = cmdinstance.split()
if len(tmp) != 12: if len(tmp) != 12:
logger.exception("'" + cmdname + ": " + " ".join(tmp) + "'" + " requires exactly twelve parameters") logger.exception(
"'"
+ cmdname
+ ": "
+ " ".join(tmp)
+ "'"
+ " requires exactly twelve parameters"
)
raise ValueError raise ValueError
pml_cfs = PMLCFS( pml_cfs = PMLCFS(