Skip to content

Releases: edaa-org/pyEDAA.OutputFilter

v0.9.0

08 Jun 07:11
de39ebd

Choose a tag to compare

New Features

  • Proper handling of repeated sections and phases.
  • Read configuration file using --config=config.yaml.
  • Specify user-defines coloring in configuration file.
    #64
  • Specify multiple output targets in configuration file.
    #63
  • Specify multiple filter rules in configuration file.
  • Added quiet mode
    #65

Changes

  • Lots of restructuring.

Bug Fixes

  • Live processing (no buffering) should be fixed.
    See #74

Unit Tests

  • Fixed some test cases.

Example Configuration

version: "0.1"

tools:
  vivado:
    colors:
      info:                 "DARK_BLUE"
      warning:              "MAGENTA"

    rule-sets:
      problems:
        all:
          action: remove
        warning:
          action: keep
        criticalWarning:
          action: keep
        error:
          action: keep

      critical:
        all:
          action: remove
        criticalWarning:
          action: keep
        error:
          action: keep

    outputs:
#      preprocessing: prefilter   # reference a predefined rule-set

      stdout:
        format:      plain
        coloring:    true      # true, on, yes, false, off, no
        lineNumbers: on        # true, on, yes, false, off, no
        timestamps:  datetime  # datetime, timeonly, deltatime, undefine

      problems:
        path:   "tests/data/problems.log"
        format: plain
        rule-sets:
          - problems

      critical:
        path:   "tests/data/critical.log"
        format: plain
        rule-sets:
          - critical    # reference a predefined rule-set

Related Issues and Pull-Requests


/cc @tasgomes


Published from Pipeline workflow triggered by github-actions[bot] on 2026-06-08 07:11:08 UTC.

This automatic release was created by pyTooling/Actions::Release.yml

v0.8.0

25 May 23:57
de55f18

Choose a tag to compare

New Features

  • Provide StartDateTime and ExitDateTime as properties on Processor.
  • Added an iterator on class Line to iterate forward and backward within the log stating at a certain line.
    (Line objects are a doubly linked list.)

Changes

  • Bumped dependencies.

Bug Fixes

  • Fixed forward and backward linking of Line objects.

Unit Tests

  • Test doubly linked list connectivity.

Published from Pipeline workflow triggered by github-actions[bot] on 2026-05-25 23:57:19 UTC.

This automatic release was created by pyTooling/Actions::Release.yml

v0.7.1

25 May 18:37
f2b2c5d

Choose a tag to compare

Bug Fixes

  • Added missing colors for nested phases and nested tasks.

Unit Tests

  • Added checks (assertNotIn) when TCL commands should be missing in a logfile.

Published from Pipeline workflow triggered by github-actions[bot] on 2026-05-25 18:37:01 UTC.

This automatic release was created by pyTooling/Actions::Release.yml

v0.7.0

25 May 12:50
7a40b7c

Choose a tag to compare

New Features

  • Handle nested task Physical Synthesis within BUFG Insertion
    • Handle nested phase Physical Synthesis Initialization within Physical Synthesis
  • Added SubSubSubPhaseWithTasks
  • Added NestedTask
  • Added NestedTaskWithPhases
  • Added NestedPhase

Bug Fixes

  • Allow preambles up to 30 lines.

Unit Tests

  • Reactivated disabled assertions.
  • Added check that no warnings were collected while report analysis.
  • Added check that all processed lines are Line objects.

Published from Pipeline workflow triggered by github-actions[bot] on 2026-05-25 12:50:24 UTC.

This automatic release was created by pyTooling/Actions::Release.yml

v0.6.0

24 May 11:16
504594f

Choose a tag to compare

New Features

  • Compute logfile duration based on a Vivado session start and exit.
  • Added more Vivado message types e.g. Info messages without a tool ID.
  • Added a Postamble parser.

Changes

  • Bumped dependencies.
  • Removed some duplicated sections.

Bug Fixes

  • Fixed collected Vivado messages (info, warning, ...) per subparser.
    Mismatches (duplicates, misses) are fixed and verified in many testcases.
  • Fixed type hints.

Documentation

  • Fixed shields.
  • Added some more doc-strings.

Unit Tests

  • All unittests are passing.
  • All example synthesis logs (Vivado 2019.1 to Vivado 2025.1) are passing.
  • All example implementation logs (Vivado 2019.1 to Vivado 2025.1) are passing.

Known issues

  • Some sections appear multiple times and overwrite previously collected data.

Published from Pipeline workflow triggered by github-actions[bot] on 2026-05-24 11:16:25 UTC.

This automatic release was created by pyTooling/Actions::Release.yml

v0.5.1

20 Jan 23:22
26b912d

Choose a tag to compare

Changes

  • Bumped documentation dependencies.

Published from Pipeline workflow triggered by github-actions[bot] on 2026-01-20 23:22:44 UTC.

This automatic release was created by pyTooling/Actions::Release.yml

v0.5.0

11 Jan 21:43
9925d50

Choose a tag to compare

Caution

This release is an intermediate step with lots of valuable enhancements with respect to code quality and how logs are parsed and processed. Still is contains known issues:

  • For some older Vivado versions, internal errors are reported within the logfile processing code.
  • When summing up e.g. INFO messages for individual sections and the overall logfile, these counts do not match.
    Investigation is complicated, due to long logfiles. It doesn't happen for simple logfiles.

New Features

  • Reworked exceptions and warnings:
    • Integrated pyTooling.Warning.WarningCollector.
  • Parsing of section/phase beginnings is based on regular expressions.
    → Reduced duplicated code snippets due to moved sections/phases from tool version to tool version.
    • Finding ends is based on generated static patterns.
    • Generalized handling of sections/phases with and without child elements.
  • Reworked generator and subgenerator handling. Especially, nextLines are now returned as generator exit values.

Changes

  • Bumped dependencies.
  • Updated pyproject configuration due to pytest v9.0 changes.
  • Improved typehints.

Bug Fixes

  • Many, many, many

Unit Tests

  • Unit tests testing against provided synthesis log files (*.vds) of a Mercury ZX5 board for Vivado 2019.1 to 2025.1.
  • Unit tests testing against provided implementation log files (*.vdi) of a Mercury ZX5 board for Vivado 2019.1 to 2025.1.
  • Updated pyTooling/Actions from @r6 to @r7.
    • Restructured requirements.txt files.

Related Issues and Pull-Requests

  • Implemented extensions to #26
  • New synthesis and implementation reports provided by @tasgomes in #35.

Published from Pipeline workflow triggered by github-actions[bot] on 2026-01-11 21:43:32 UTC.

This automatic release was created by pyTooling/Actions::Release.yml

v0.4.0

27 Jul 20:58
596226f

Choose a tag to compare

Important

Under certain circumstances, a single [INFO] line gets duplicated within phys_opt_design command region.
Investigation is ongoing.

New Features

  • Vivado:
    • Handle implementation commands:
      • link_design
      • opt_design
      • place_design
      • phys_opt_design
      • route_design
      • write_bitstream
    • link_design:
      • Collect Vivado messages
      • Collect loaded common XDC files and Vivado messages per file.
      • Collect loaded XDC files per cell and Vivado messages per file and cell (SCOPE_TO_REF).
    • opt_design:
      • Collect Vivado messages
      • Detect tasks
      • Detect phases in Logic Optimization task
    • place_design:
      • Collect Vivado messages
      • Detect tasks
      • Detect phases, subphases, ...
    • phys_opt_design:
      • Collect Vivado messages
      • Detect tasks
      • Detect phases, subphases, ...
    • route_design:
      • Collect Vivado messages
      • Detect tasks
      • Detect phases, subphases, ...
  • Read input data from file or STDIN via CLI option --stdin or --file=-.

Changes

  • Coloring classified output lines is based on an internal dictionary.
    This can later be replaced by a configuration file section.
  • Added more classifications to LineKind.
  • Processor preserves an internal array if processed lines accessible via property Processor.Lines.

Unit Tests

  • Updated junit tests.

Related Issues and Pull-Requests

  • Implemented #26

Published from Pipeline workflow triggered by github-actions[bot] on 2025-07-27 20:58:48 UTC.

This automatic release was created by pyTooling/Actions::Release.yml

v0.3.0

06 Jul 06:33
54459a9

Choose a tag to compare

New Features

  • Vivado logs:
    • Discover Vivado TCL commands like synth_design.
    • synth_design:
      • Handle sections and subsections.
      • Handle ROM, RAM, DSP, Shift Register and Retiming Reporting section.
        See #18
      • Handle intermediate Finished ... Phase ... outputs.
    • Vivado message collection per
      • Processor
      • per TCL command
      • per section
      • per subsection
    • New policy:
      • IsIncompleteLog
    • Line objects are now a double-linked list. Each line has a Previous and Next line object.

Changes

  • Vivado logs:
    • Preamble is now a member on Processor.
    • Synthesis related properties have been moved from Processor to SynthesizeDesign.
  • CLI tool pyedaa-outputfilter:
    • Changed command vivado-synth to vivado.

Bug Fixes

  • Handle ----...---- line before a section start.

Unit Tests

  • Enhanced unit tests for synth_design.

Related Issues and Pull-Requests


Published from Pipeline workflow triggered by github-actions[bot] on 2025-07-06 06:33:44 UTC.

This automatic release was created by pyTooling/Actions::Release.yml

v0.2.0

22 Jun 23:56
2d313f0

Choose a tag to compare

New Features

  • Write colored log file lines to console.
  • Create summary of extracted information (just for testing and demonstration purposes).
  • New extracted information:
    • FPGA part name
  • Rewrite VivadoMessages to more specific messages
    • VHDLReportMessage
    • VHDLAssertionMessage
  • New pseudo section: ConstraintValidation

Changes

  • Bumped dependencies.
  • Reworked parsing strategy and architecture to use Python generators and nested generators.
    • Generalized handling of section start and section finished parts
    • Generalized uninteresting section handling.
    • Handle subsections

Generated Outputs:

Colored Output 1 Colored Output 2
Colored Output 3 Extraction Summary

Published from Pipeline workflow triggered by github-actions[bot] on 2025-06-22 23:56:42 UTC.

This automatic release was created by pyTooling/Actions::Release.yml