Repository navigation
v0.7.0
Added
-
Add programmable Pattern execution with normal Python functions through
match(body)for checks andcollect(body)for extraction. -
Add Pattern failure diagnostics with
require_message=andtimeout_message=. -
Add experimental unknown-mask loading APIs:
load_unknown_mask(...)andload_matched_unknown_masks(...). -
Add unified query matcher support for canonical
/regex/syntax,*/**
wildcards, and typed capture objects.
Changed
-
Unify reader hierarchy, signal resolution, query matching, and matched loading across VCD, FST, and FSDB readers.
-
Improve range handling for native ranges, non-zero ranges, scalar bit selects, packed ranges, and FSDB leaf signals.
-
Improve
Waveform.__repr__/__str__. -
Make
Waveform.compress()preserve value-change points and the final sample.
Fixed
-
Fix Pattern zero-time declarative loops so they cannot run forever in the same cycle.
-
Avoid double-evaluating the first unguarded declarative
wait(...)trigger. -
Improve VCD/FST/FSDB reader behavior for empty signals, invalid ranges, composite signals, and X/Z handling.
-
Validate
xz_valueconsistently.
Breaking changes
-
Redesign Pattern imports and execution. Pattern APIs now live under
wavekit.pattern, and execution uses module-levelmatch(...)/collect(...)instead ofPattern().match()/Pattern().timeout(...). -
Replace
MatchResultwithMatchRecords/MatchRecord. Results now support row access withrecords[i], slicing, structured start/end points, status objects, and capture columns. -
Replace enum-style Pattern statuses and
validhelpers. UseMatchStatus.OK(),MatchStatus.Timeout(message),MatchStatus.RequireViolated(message), plusok,failed,filter_ok(),filter_failed(), andfilter_status(...). -
Update Pattern timing and blocking semantics.
wait(...)observes events,consume(...)claims events exclusively for channel-based pairing, and successful blocking steps continue in the same cycle. Usedelay(1)for next-cycle behavior. -
Rename matched-reader parameters from
pattern/clock_patterntosignal_path/clock_path. -
Change matched-reader keys from plain captured values to typed
CaptureKey
tuples containing capture objects such asBraceCaptureandRegexCapture. -
Replace legacy
wavekit.scope,wavekit.signal, andwavekit.readers.pattern_parsermodules with the unified hierarchy/query model underwavekit.readers.