sawmill-parser 0.1.0__tar.gz

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (136) hide show
  1. sawmill_parser-0.1.0/.gitattributes +1 -0
  2. sawmill_parser-0.1.0/.github/workflows/docs.yml +51 -0
  3. sawmill_parser-0.1.0/.github/workflows/publish.yml +28 -0
  4. sawmill_parser-0.1.0/.gitignore +80 -0
  5. sawmill_parser-0.1.0/.pre-commit-config.yaml +29 -0
  6. sawmill_parser-0.1.0/CHANGELOG.md +701 -0
  7. sawmill_parser-0.1.0/CLAUDE.md +241 -0
  8. sawmill_parser-0.1.0/Dockerfile +52 -0
  9. sawmill_parser-0.1.0/PKG-INFO +204 -0
  10. sawmill_parser-0.1.0/PRD.md +590 -0
  11. sawmill_parser-0.1.0/PROMPT.md +230 -0
  12. sawmill_parser-0.1.0/README.md +167 -0
  13. sawmill_parser-0.1.0/STATUS.md +389 -0
  14. sawmill_parser-0.1.0/assets/sawmill.png +3 -0
  15. sawmill_parser-0.1.0/docs/Makefile +14 -0
  16. sawmill_parser-0.1.0/docs/conf.py +31 -0
  17. sawmill_parser-0.1.0/docs/development/contributing.rst +113 -0
  18. sawmill_parser-0.1.0/docs/getting-started/quickstart.rst +86 -0
  19. sawmill_parser-0.1.0/docs/getting-started/what-is-sawmill.rst +64 -0
  20. sawmill_parser-0.1.0/docs/index.rst +48 -0
  21. sawmill_parser-0.1.0/docs/plugin-guide/pre-defined-filters.rst +84 -0
  22. sawmill_parser-0.1.0/docs/plugin-guide/what-is-a-plugin.rst +84 -0
  23. sawmill_parser-0.1.0/docs/plugin-guide/writing-a-plugin.rst +283 -0
  24. sawmill_parser-0.1.0/docs/reference/api.rst +107 -0
  25. sawmill_parser-0.1.0/docs/reference/cli-reference.rst +135 -0
  26. sawmill_parser-0.1.0/docs/reference/file-formats.rst +148 -0
  27. sawmill_parser-0.1.0/docs/requirements.txt +4 -0
  28. sawmill_parser-0.1.0/docs/user-guide/ci-integration.rst +184 -0
  29. sawmill_parser-0.1.0/docs/user-guide/cli-usage.rst +166 -0
  30. sawmill_parser-0.1.0/docs/user-guide/sawmill-directory.rst +98 -0
  31. sawmill_parser-0.1.0/docs/user-guide/tui-usage.rst +180 -0
  32. sawmill_parser-0.1.0/docs/user-guide/waivers.rst +141 -0
  33. sawmill_parser-0.1.0/pyproject.toml +94 -0
  34. sawmill_parser-0.1.0/ralph-loop.sh +361 -0
  35. sawmill_parser-0.1.0/sawmill/__init__.py +3 -0
  36. sawmill_parser-0.1.0/sawmill/__main__.py +6 -0
  37. sawmill_parser-0.1.0/sawmill/cli/__init__.py +8 -0
  38. sawmill_parser-0.1.0/sawmill/cli/commands.py +620 -0
  39. sawmill_parser-0.1.0/sawmill/cli/formatting.py +250 -0
  40. sawmill_parser-0.1.0/sawmill/cli/processing.py +266 -0
  41. sawmill_parser-0.1.0/sawmill/cli/reporting.py +250 -0
  42. sawmill_parser-0.1.0/sawmill/core/__init__.py +68 -0
  43. sawmill_parser-0.1.0/sawmill/core/aggregation.py +391 -0
  44. sawmill_parser-0.1.0/sawmill/core/config.py +208 -0
  45. sawmill_parser-0.1.0/sawmill/core/filter.py +163 -0
  46. sawmill_parser-0.1.0/sawmill/core/plugin.py +215 -0
  47. sawmill_parser-0.1.0/sawmill/core/severity.py +94 -0
  48. sawmill_parser-0.1.0/sawmill/core/suppress.py +89 -0
  49. sawmill_parser-0.1.0/sawmill/core/waiver.py +562 -0
  50. sawmill_parser-0.1.0/sawmill/models/__init__.py +25 -0
  51. sawmill_parser-0.1.0/sawmill/models/filter_def.py +41 -0
  52. sawmill_parser-0.1.0/sawmill/models/message.py +101 -0
  53. sawmill_parser-0.1.0/sawmill/models/plugin_api.py +117 -0
  54. sawmill_parser-0.1.0/sawmill/models/waiver.py +61 -0
  55. sawmill_parser-0.1.0/sawmill/plugin/__init__.py +227 -0
  56. sawmill_parser-0.1.0/sawmill/plugin/hookspec.py +186 -0
  57. sawmill_parser-0.1.0/sawmill/tui/__init__.py +9 -0
  58. sawmill_parser-0.1.0/sawmill/tui/app.py +1008 -0
  59. sawmill_parser-0.1.0/sawmill/tui/base.tcss +407 -0
  60. sawmill_parser-0.1.0/sawmill/tui/filter_parser.py +81 -0
  61. sawmill_parser-0.1.0/sawmill/tui/theme.py +41 -0
  62. sawmill_parser-0.1.0/sawmill/tui/widgets/__init__.py +14 -0
  63. sawmill_parser-0.1.0/sawmill/tui/widgets/footer.py +70 -0
  64. sawmill_parser-0.1.0/sawmill/tui/widgets/quit_modal.py +97 -0
  65. sawmill_parser-0.1.0/sawmill/tui/widgets/waive_modal.py +236 -0
  66. sawmill_parser-0.1.0/sawmill/utils/__init__.py +6 -0
  67. sawmill_parser-0.1.0/sawmill/utils/author.py +55 -0
  68. sawmill_parser-0.1.0/sawmill/utils/dirs.py +66 -0
  69. sawmill_parser-0.1.0/sawmill/utils/git.py +48 -0
  70. sawmill_parser-0.1.0/sawmill/utils/toml.py +58 -0
  71. sawmill_parser-0.1.0/sourceme +56 -0
  72. sawmill_parser-0.1.0/tests/__init__.py +1 -0
  73. sawmill_parser-0.1.0/tests/conftest.py +57 -0
  74. sawmill_parser-0.1.0/tests/core/__init__.py +0 -0
  75. sawmill_parser-0.1.0/tests/core/test_aggregation.py +477 -0
  76. sawmill_parser-0.1.0/tests/core/test_config.py +344 -0
  77. sawmill_parser-0.1.0/tests/core/test_filter.py +406 -0
  78. sawmill_parser-0.1.0/tests/core/test_plugin_autodetect.py +288 -0
  79. sawmill_parser-0.1.0/tests/core/test_plugin_manager.py +173 -0
  80. sawmill_parser-0.1.0/tests/core/test_suppress.py +163 -0
  81. sawmill_parser-0.1.0/tests/core/test_waiver.py +576 -0
  82. sawmill_parser-0.1.0/tests/core/test_waiver_matching.py +693 -0
  83. sawmill_parser-0.1.0/tests/fixtures/vivado.log +3020 -0
  84. sawmill_parser-0.1.0/tests/models/__init__.py +0 -0
  85. sawmill_parser-0.1.0/tests/models/test_filter_def.py +80 -0
  86. sawmill_parser-0.1.0/tests/models/test_message.py +115 -0
  87. sawmill_parser-0.1.0/tests/plugin/__init__.py +0 -0
  88. sawmill_parser-0.1.0/tests/plugin/test_hookspec.py +151 -0
  89. sawmill_parser-0.1.0/tests/plugins/__init__.py +0 -0
  90. sawmill_parser-0.1.0/tests/plugins/test_vivado.py +338 -0
  91. sawmill_parser-0.1.0/tests/test_ci_mode.py +534 -0
  92. sawmill_parser-0.1.0/tests/test_ci_report.py +652 -0
  93. sawmill_parser-0.1.0/tests/test_ci_waivers.py +609 -0
  94. sawmill_parser-0.1.0/tests/test_cli.py +399 -0
  95. sawmill_parser-0.1.0/tests/test_cli_formats.py +331 -0
  96. sawmill_parser-0.1.0/tests/test_cli_id_filter.py +362 -0
  97. sawmill_parser-0.1.0/tests/test_cli_integration.py +594 -0
  98. sawmill_parser-0.1.0/tests/test_cli_plugin_discovery.py +126 -0
  99. sawmill_parser-0.1.0/tests/test_cli_summary.py +240 -0
  100. sawmill_parser-0.1.0/tests/test_fixtures.py +54 -0
  101. sawmill_parser-0.1.0/tests/test_plugin_api.py +402 -0
  102. sawmill_parser-0.1.0/tests/test_project_setup.py +17 -0
  103. sawmill_parser-0.1.0/tests/test_waiver_generation.py +786 -0
  104. sawmill_parser-0.1.0/tests/tui/__init__.py +1 -0
  105. sawmill_parser-0.1.0/tests/tui/test_app.py +490 -0
  106. sawmill_parser-0.1.0/tests/tui/test_base_styles.py +179 -0
  107. sawmill_parser-0.1.0/tests/tui/test_filter_parser.py +103 -0
  108. sawmill_parser-0.1.0/tests/tui/test_footer.py +30 -0
  109. sawmill_parser-0.1.0/tests/tui/test_persistence.py +724 -0
  110. sawmill_parser-0.1.0/tests/tui/test_suppress.py +330 -0
  111. sawmill_parser-0.1.0/tests/tui/test_waive.py +486 -0
  112. sawmill_parser-0.1.0/tests/utils/__init__.py +1 -0
  113. sawmill_parser-0.1.0/tests/utils/test_dirs.py +84 -0
  114. sawmill_parser-0.1.0/tests/utils/test_git.py +143 -0
  115. sawmill_parser-0.1.0/tests/utils/test_toml.py +174 -0
  116. sawmill_parser-0.1.0/tools/sawmill-plugin-generator/pyproject.toml +30 -0
  117. sawmill_parser-0.1.0/tools/sawmill-plugin-generator/src/sawmill_plugin_generator/__init__.py +1 -0
  118. sawmill_parser-0.1.0/tools/sawmill-plugin-generator/src/sawmill_plugin_generator/cli.py +61 -0
  119. sawmill_parser-0.1.0/tools/sawmill-plugin-generator/src/sawmill_plugin_generator/generator.py +88 -0
  120. sawmill_parser-0.1.0/tools/sawmill-plugin-generator/src/sawmill_plugin_generator/names.py +59 -0
  121. sawmill_parser-0.1.0/tools/sawmill-plugin-generator/src/sawmill_plugin_generator/templates/conftest.py.j2 +28 -0
  122. sawmill_parser-0.1.0/tools/sawmill-plugin-generator/src/sawmill_plugin_generator/templates/init.py.j2 +5 -0
  123. sawmill_parser-0.1.0/tools/sawmill-plugin-generator/src/sawmill_plugin_generator/templates/makefile.j2 +14 -0
  124. sawmill_parser-0.1.0/tools/sawmill-plugin-generator/src/sawmill_plugin_generator/templates/patterns.py.j2 +35 -0
  125. sawmill_parser-0.1.0/tools/sawmill-plugin-generator/src/sawmill_plugin_generator/templates/plugin.py.j2 +208 -0
  126. sawmill_parser-0.1.0/tools/sawmill-plugin-generator/src/sawmill_plugin_generator/templates/pyproject.toml.j2 +44 -0
  127. sawmill_parser-0.1.0/tools/sawmill-plugin-generator/src/sawmill_plugin_generator/templates/readme.md.j2 +46 -0
  128. sawmill_parser-0.1.0/tools/sawmill-plugin-generator/src/sawmill_plugin_generator/templates/sample_log.j2 +15 -0
  129. sawmill_parser-0.1.0/tools/sawmill-plugin-generator/src/sawmill_plugin_generator/templates/test_detection.py.j2 +32 -0
  130. sawmill_parser-0.1.0/tools/sawmill-plugin-generator/src/sawmill_plugin_generator/templates/test_parsing.py.j2 +42 -0
  131. sawmill_parser-0.1.0/tools/sawmill-plugin-generator/src/sawmill_plugin_generator/templates/test_plugin_contract.py.j2 +75 -0
  132. sawmill_parser-0.1.0/tools/sawmill-plugin-generator/src/sawmill_plugin_generator/templates/test_severity.py.j2 +42 -0
  133. sawmill_parser-0.1.0/tools/sawmill-plugin-generator/tests/test_cli.py +67 -0
  134. sawmill_parser-0.1.0/tools/sawmill-plugin-generator/tests/test_generator.py +164 -0
  135. sawmill_parser-0.1.0/tools/sawmill-plugin-generator/tests/test_names.py +74 -0
  136. sawmill_parser-0.1.0/uv.lock +924 -0
@@ -0,0 +1 @@
1
+ *.png filter=lfs diff=lfs merge=lfs -text
@@ -0,0 +1,51 @@
1
+ name: Deploy docs to GitHub Pages
2
+
3
+ on:
4
+ push:
5
+ branches: [main]
6
+ paths:
7
+ - "docs/**"
8
+ - "sawmill/**"
9
+ - ".github/workflows/docs.yml"
10
+ workflow_dispatch:
11
+
12
+ permissions:
13
+ contents: read
14
+ pages: write
15
+ id-token: write
16
+
17
+ concurrency:
18
+ group: pages
19
+ cancel-in-progress: true
20
+
21
+ jobs:
22
+ build:
23
+ runs-on: ubuntu-latest
24
+ steps:
25
+ - uses: actions/checkout@v4
26
+
27
+ - uses: actions/setup-python@v5
28
+ with:
29
+ python-version: "3.12"
30
+
31
+ - name: Install dependencies
32
+ run: |
33
+ pip install -e .
34
+ pip install -r docs/requirements.txt
35
+
36
+ - name: Build docs
37
+ run: sphinx-build -b html docs docs/_build/html
38
+
39
+ - uses: actions/upload-pages-artifact@v3
40
+ with:
41
+ path: docs/_build/html
42
+
43
+ deploy:
44
+ needs: build
45
+ runs-on: ubuntu-latest
46
+ environment:
47
+ name: github-pages
48
+ url: ${{ steps.deployment.outputs.page_url }}
49
+ steps:
50
+ - id: deployment
51
+ uses: actions/deploy-pages@v4
@@ -0,0 +1,28 @@
1
+ name: Publish to PyPI
2
+
3
+ on:
4
+ push:
5
+ tags:
6
+ - "v*"
7
+
8
+ jobs:
9
+ publish:
10
+ runs-on: ubuntu-latest
11
+ permissions:
12
+ id-token: write # Required for trusted publishing
13
+
14
+ steps:
15
+ - uses: actions/checkout@v4
16
+
17
+ - uses: actions/setup-python@v5
18
+ with:
19
+ python-version: "3.x"
20
+
21
+ - name: Install build tools
22
+ run: pip install build
23
+
24
+ - name: Build package
25
+ run: python -m build
26
+
27
+ - name: Publish to PyPI
28
+ uses: pypa/gh-action-pypi-publish@release/v1
@@ -0,0 +1,80 @@
1
+ # Byte-compiled / optimized / DLL files
2
+ __pycache__/
3
+ *.py[cod]
4
+ *$py.class
5
+
6
+ # C extensions
7
+ *.so
8
+
9
+ # Distribution / packaging
10
+ .Python
11
+ build/
12
+ develop-eggs/
13
+ dist/
14
+ downloads/
15
+ eggs/
16
+ .eggs/
17
+ lib/
18
+ lib64/
19
+ parts/
20
+ sdist/
21
+ var/
22
+ wheels/
23
+ *.egg-info/
24
+ .installed.cfg
25
+ *.egg
26
+
27
+ # PyInstaller
28
+ *.manifest
29
+ *.spec
30
+
31
+ # Installer logs
32
+ pip-log.txt
33
+ pip-delete-this-directory.txt
34
+
35
+ # Unit test / coverage reports
36
+ htmlcov/
37
+ .tox/
38
+ .nox/
39
+ .coverage
40
+ .coverage.*
41
+ .cache
42
+ nosetests.xml
43
+ coverage.xml
44
+ *.cover
45
+ *.py,cover
46
+ .hypothesis/
47
+ .pytest_cache/
48
+
49
+ # Translations
50
+ *.mo
51
+ *.pot
52
+
53
+ # Environments
54
+ .env
55
+ .venv
56
+ env/
57
+ venv/
58
+ ENV/
59
+ env.bak/
60
+ venv.bak/
61
+
62
+ # IDE
63
+ .idea/
64
+ .vscode/
65
+ *.swp
66
+ *.swo
67
+ *~
68
+
69
+ # mypy
70
+ .mypy_cache/
71
+
72
+ # ruff
73
+ .ruff_cache/
74
+
75
+ # Sphinx documentation
76
+ docs/_build/
77
+
78
+ # OS
79
+ .DS_Store
80
+ Thumbs.db
@@ -0,0 +1,29 @@
1
+ repos:
2
+ - repo: https://github.com/pre-commit/pre-commit-hooks
3
+ rev: v5.0.0
4
+ hooks:
5
+ - id: trailing-whitespace
6
+ exclude: ^examples/
7
+ - id: end-of-file-fixer
8
+ - id: check-yaml
9
+ - id: check-toml
10
+ - id: debug-statements
11
+ - id: check-merge-conflict
12
+
13
+ - repo: https://github.com/astral-sh/ruff-pre-commit
14
+ rev: v0.9.6
15
+ hooks:
16
+ - id: ruff
17
+ args: [--fix]
18
+ - id: ruff-format
19
+
20
+ - repo: local
21
+ hooks:
22
+ - id: mypy
23
+ name: mypy
24
+ entry: mypy sawmill/
25
+ language: system
26
+ types: [python]
27
+ files: ^sawmill/
28
+ pass_filenames: false
29
+ args: [--config-file=pyproject.toml]