ParsedSiwaveLog#

class pyedb.workflows.utilities.siwave_log_parser.ParsedSiwaveLog#

Root container returned by SiwaveLogParser.parse().

This class holds all parsed information from a SIwave log file and provides convenience methods for checking completion status, generating summaries, and exporting data.

Attributes:
aedtAEDTVersion

AEDT version information extracted from log header.

batchBatchInfo

Batch run metadata including timestamps and user info.

settingsSimSettings

Simulation settings and configuration.

warningslist of WarningEntry

Warning entries from the log. The default is an empty list.

profilelist of ProfileEntry

Profile/timing entries showing task performance. The default is an empty list.

Examples

>>> from datetime import datetime
>>> from pathlib import Path
>>> log = ParsedSiwaveLog(
...     aedt=AEDTVersion(version="2025.1", build="123", location="C:\AEDT"),
...     batch=BatchInfo(
...         path="C:\project\test.siw",
...         started=datetime(2025, 11, 10, 9, 0, 0),
...         stopped=datetime(2025, 11, 10, 10, 0, 0),
...         run_by="engineer",
...         temp_dir="C:\temp",
...         project_dir="C:\project",
...         status="Normal Completion",
...     ),
...     settings=SimSettings(
...         design_type="SIwave",
...         allow_off_core=True,
...         manual_settings=False,
...         two_level=False,
...         distribution_types=["Local"],
...         machines=[],
...     ),
... )
>>> log.is_completed()
True

Overview#

summary

Print a summary of the parsed log to stdout.

is_completed

Check if the simulation completed normally.

is_aborted

Check if the simulation was aborted.

to_json

Serialize parsed log to JSON file.

to_dict

Deep-convert the entire object to JSON-serializable primitives.

Import detail#

from pyedb.workflows.utilities.siwave_log_parser import ParsedSiwaveLog

Attribute detail#

ParsedSiwaveLog.aedt: AEDTVersion#
ParsedSiwaveLog.batch: BatchInfo#
ParsedSiwaveLog.settings: SimSettings#
ParsedSiwaveLog.warnings: list[WarningEntry] = []#
ParsedSiwaveLog.profile: list[ProfileEntry] = []#

Method detail#

ParsedSiwaveLog.summary() None#

Print a summary of the parsed log to stdout.

Examples

>>> log = ParsedSiwaveLog(aedt=..., batch=..., settings=...)
>>> log.summary()
Project : test_design
Run by  : engineer
Started : Mon Nov 10 09:00:00 2025
Stopped : Mon Nov 10 10:00:00 2025
Status  : Normal Completion
Warnings: 0
Profile entries: 0
ParsedSiwaveLog.is_completed() bool#

Check if the simulation completed normally.

Returns:
bool

True if status is 'Normal Completion', False otherwise.

Examples

>>> log = ParsedSiwaveLog(
...     aedt=AEDTVersion("2025.1", "123", "C:\AEDT"),
...     batch=BatchInfo(
...         path="test.siw",
...         started=datetime(2025, 1, 1),
...         stopped=datetime(2025, 1, 1),
...         run_by="user",
...         temp_dir="",
...         project_dir="",
...         status="Normal Completion",
...     ),
...     settings=SimSettings("", False, False, False, [], []),
... )
>>> log.is_completed()
True
ParsedSiwaveLog.is_aborted() bool#

Check if the simulation was aborted.

Returns:
bool

True if simulation did not complete normally, False otherwise.

Examples

>>> log = ParsedSiwaveLog(
...     aedt=AEDTVersion("2025.1", "123", "C:\AEDT"),
...     batch=BatchInfo(
...         path="test.siw",
...         started=datetime(2025, 1, 1),
...         stopped=datetime(2025, 1, 1),
...         run_by="user",
...         temp_dir="",
...         project_dir="",
...         status="Aborted",
...     ),
...     settings=SimSettings("", False, False, False, [], []),
... )
>>> log.is_aborted()
True
ParsedSiwaveLog.to_json(fp: str, **kw) None#

Serialize parsed log to JSON file.

Parameters:
fpstr

File path to write JSON to.

**kw

Additional keyword arguments passed to json.dumps().

Examples

>>> log = ParsedSiwaveLog(aedt=..., batch=..., settings=...)
>>> log.to_json("output.json", indent=2)
ParsedSiwaveLog.to_dict() dict#

Deep-convert the entire object to JSON-serializable primitives.

Returns:
dict

Plain dict/list/scalar structure suitable for JSON serialization.

Examples

>>> log = ParsedSiwaveLog(aedt=..., batch=..., settings=...)
>>> data_dict = log.to_dict()
>>> isinstance(data_dict, dict)
True
>>> "aedt" in data_dict
True