<p align="center">
<a title="edaa-org.github.io/pyEDAA.OutputFilter" href="https://edaa-org.github.io/pyEDAA.OutputFilter"><img height="80px" src="doc/_static/logo.svg"/></a>
</p>
[](https://GitHub.com/edaa-org/pyEDAA.OUTPUTFILTER)
[](LICENSE.md)
[](https://edaa-org.github.io/pyEDAA.OUTPUTFILTER/)
[](LICENSE.md)
[](https://pypi.org/project/pyEDAA.OUTPUTFILTER/)


[](https://GitHub.com/edaa-org/pyEDAA.OUTPUTFILTER/actions/workflows/Pipeline.yml)
[](https://libraries.io/github/edaa-org/pyEDAA.OUTPUTFILTER)
[](https://www.codacy.com/gh/edaa-org/pyEDAA.OUTPUTFILTER)
[](https://www.codacy.com/gh/edaa-org/pyEDAA.OUTPUTFILTER)
[](https://codecov.io/gh/edaa-org/pyEDAA.OUTPUTFILTER)
<!--
[](https://github.com/edaa-org/pyEDAA.OUTPUTFILTER/network/dependents)
[](https://requires.io/github/edaa-org/pyEDAA.OUTPUTFILTER/requirements/?branch=main)
[](https://libraries.io/github/edaa-org/pyEDAA.OUTPUTFILTER/sourcerank)
-->
<p align="center">
<img height="275px" src="doc/_static/work-in-progress.png"/>
</p>
# Main Goals
* Live and offline parsing and classification of message lines from tool outputs.
* Provide a data model for tool specific log files.
* Extract values, lists and tables of embedded reports or summaries.
* Implement checks and policies.
# Use Cases
* Write colorized logs to CI server logs or to shells based on classification.
* Increase or decrease the severity level of message.
* List messages of a certain kind (e.g. unused sequential elements).
* Check for existence / non-existence of messages or outputs (e.g. latches).
* Collect statistics and convert to datasets for a time series database (TSDB).
# Examples
```python
from pathlib import Path
from pyEDAA.OutputFilter.Xilinx.SynthesizeDesign import Processor
logfile = Path("tests/data/Stopwatch/toplevel.vds")
processor = Processor(logfile)
processor.Parse()
print(f"CRITICAL WARNING Messages ({len(processor.CriticalWarningMessages)}):")
for message in processor.CriticalWarningMessages:
print(f" {message}")
```
# Contributors
* [Patrick Lehmann](https://github.com/Paebbels) (Maintainer)
* [Unai Martinez-Corral](https://github.com/umarcor)
* [and more...](https://github.com/edaa-org/pyEDAA.OutputFilter/graphs/contributors)
# License
This Python package (source code) is licensed under [Apache License 2.0](LICENSE.md).
The accompanying documentation is licensed under [Creative Commons - Attribution 4.0 (CC-BY 4.0)](doc/Doc-License.rst).
-------------------------
SPDX-License-Identifier: Apache-2.0
Raw data
{
"_id": null,
"home_page": "https://GitHub.com/edaa-org/pyEDAA.OutputFilter",
"name": "pyEDAA.OutputFilter",
"maintainer": null,
"docs_url": null,
"requires_python": ">=3.11",
"maintainer_email": null,
"keywords": "Python3 CLI Output Filter PostProcessing",
"author": "Patrick Lehmann",
"author_email": "Paebbels@gmail.com",
"download_url": "https://files.pythonhosted.org/packages/15/78/60c809d1e3c61665898800842d303f152ee2198319dba2d35bf234a1247b/pyedaa_outputfilter-0.4.0.tar.gz",
"platform": null,
"description": "<p align=\"center\">\n <a title=\"edaa-org.github.io/pyEDAA.OutputFilter\" href=\"https://edaa-org.github.io/pyEDAA.OutputFilter\"><img height=\"80px\" src=\"doc/_static/logo.svg\"/></a>\n</p>\n\n[](https://GitHub.com/edaa-org/pyEDAA.OUTPUTFILTER)\n[](LICENSE.md)\n[](https://edaa-org.github.io/pyEDAA.OUTPUTFILTER/)\n[](LICENSE.md) \n[](https://pypi.org/project/pyEDAA.OUTPUTFILTER/)\n\n \n[](https://GitHub.com/edaa-org/pyEDAA.OUTPUTFILTER/actions/workflows/Pipeline.yml)\n[](https://libraries.io/github/edaa-org/pyEDAA.OUTPUTFILTER)\n[](https://www.codacy.com/gh/edaa-org/pyEDAA.OUTPUTFILTER)\n[](https://www.codacy.com/gh/edaa-org/pyEDAA.OUTPUTFILTER)\n[](https://codecov.io/gh/edaa-org/pyEDAA.OUTPUTFILTER)\n\n<!--\n[](https://github.com/edaa-org/pyEDAA.OUTPUTFILTER/network/dependents)\n[](https://requires.io/github/edaa-org/pyEDAA.OUTPUTFILTER/requirements/?branch=main)\n[](https://libraries.io/github/edaa-org/pyEDAA.OUTPUTFILTER/sourcerank) \n-->\n\n<p align=\"center\">\n <img height=\"275px\" src=\"doc/_static/work-in-progress.png\"/>\n</p>\n\n# Main Goals\n\n* Live and offline parsing and classification of message lines from tool outputs.\n* Provide a data model for tool specific log files.\n* Extract values, lists and tables of embedded reports or summaries.\n* Implement checks and policies.\n\n# Use Cases\n\n* Write colorized logs to CI server logs or to shells based on classification.\n* Increase or decrease the severity level of message.\n* List messages of a certain kind (e.g. unused sequential elements).\n* Check for existence / non-existence of messages or outputs (e.g. latches).\n* Collect statistics and convert to datasets for a time series database (TSDB).\n\n# Examples\n\n```python\nfrom pathlib import Path\nfrom pyEDAA.OutputFilter.Xilinx.SynthesizeDesign import Processor\n\nlogfile = Path(\"tests/data/Stopwatch/toplevel.vds\")\nprocessor = Processor(logfile)\nprocessor.Parse()\n\nprint(f\"CRITICAL WARNING Messages ({len(processor.CriticalWarningMessages)}):\")\nfor message in processor.CriticalWarningMessages:\n print(f\" {message}\")\n```\n\n# Contributors\n\n* [Patrick Lehmann](https://github.com/Paebbels) (Maintainer)\n* [Unai Martinez-Corral](https://github.com/umarcor)\n* [and more...](https://github.com/edaa-org/pyEDAA.OutputFilter/graphs/contributors)\n\n# License\n\nThis Python package (source code) is licensed under [Apache License 2.0](LICENSE.md).\nThe accompanying documentation is licensed under [Creative Commons - Attribution 4.0 (CC-BY 4.0)](doc/Doc-License.rst).\n\n-------------------------\nSPDX-License-Identifier: Apache-2.0\n",
"bugtrack_url": null,
"license": "Apache-2.0",
"summary": "Post-processing of EDA Tool outputs (log files).",
"version": "0.4.0",
"project_urls": {
"Documentation": "https://edaa-org.GitHub.io/pyEDAA.OutputFilter",
"Homepage": "https://GitHub.com/edaa-org/pyEDAA.OutputFilter",
"Issue Tracker": "https://GitHub.com/edaa-org/pyEDAA.OutputFilter/issues",
"Source Code": "https://GitHub.com/edaa-org/pyEDAA.OutputFilter"
},
"split_keywords": [
"python3",
"cli",
"output",
"filter",
"postprocessing"
],
"urls": [
{
"comment_text": null,
"digests": {
"blake2b_256": "20dc12a46ac2d6dbc6ade9b31c19de1ed9c30850eeb9a25a7014556904ae640e",
"md5": "ad887c32b042fe4fa212bcad3e5a8046",
"sha256": "51fc231c2ae4efd29e4051606eda855fa39ad435c8f941491aff321373d9a5ea"
},
"downloads": -1,
"filename": "pyedaa_outputfilter-0.4.0-py3-none-any.whl",
"has_sig": false,
"md5_digest": "ad887c32b042fe4fa212bcad3e5a8046",
"packagetype": "bdist_wheel",
"python_version": "py3",
"requires_python": ">=3.11",
"size": 43632,
"upload_time": "2025-07-27T20:59:07",
"upload_time_iso_8601": "2025-07-27T20:59:07.851448Z",
"url": "https://files.pythonhosted.org/packages/20/dc/12a46ac2d6dbc6ade9b31c19de1ed9c30850eeb9a25a7014556904ae640e/pyedaa_outputfilter-0.4.0-py3-none-any.whl",
"yanked": false,
"yanked_reason": null
},
{
"comment_text": null,
"digests": {
"blake2b_256": "157860c809d1e3c61665898800842d303f152ee2198319dba2d35bf234a1247b",
"md5": "ad714add25f41b37d10af00e8fc757ab",
"sha256": "c528014bf8294762232fbc416d1ec3933c18edd233f45341c307c62e207e05b1"
},
"downloads": -1,
"filename": "pyedaa_outputfilter-0.4.0.tar.gz",
"has_sig": false,
"md5_digest": "ad714add25f41b37d10af00e8fc757ab",
"packagetype": "sdist",
"python_version": "source",
"requires_python": ">=3.11",
"size": 31787,
"upload_time": "2025-07-27T20:59:06",
"upload_time_iso_8601": "2025-07-27T20:59:06.505545Z",
"url": "https://files.pythonhosted.org/packages/15/78/60c809d1e3c61665898800842d303f152ee2198319dba2d35bf234a1247b/pyedaa_outputfilter-0.4.0.tar.gz",
"yanked": false,
"yanked_reason": null
}
],
"upload_time": "2025-07-27 20:59:06",
"github": false,
"gitlab": false,
"bitbucket": false,
"codeberg": false,
"lcname": "pyedaa.outputfilter"
}