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.
- sawmill_parser-0.1.0/.gitattributes +1 -0
- sawmill_parser-0.1.0/.github/workflows/docs.yml +51 -0
- sawmill_parser-0.1.0/.github/workflows/publish.yml +28 -0
- sawmill_parser-0.1.0/.gitignore +80 -0
- sawmill_parser-0.1.0/.pre-commit-config.yaml +29 -0
- sawmill_parser-0.1.0/CHANGELOG.md +701 -0
- sawmill_parser-0.1.0/CLAUDE.md +241 -0
- sawmill_parser-0.1.0/Dockerfile +52 -0
- sawmill_parser-0.1.0/PKG-INFO +204 -0
- sawmill_parser-0.1.0/PRD.md +590 -0
- sawmill_parser-0.1.0/PROMPT.md +230 -0
- sawmill_parser-0.1.0/README.md +167 -0
- sawmill_parser-0.1.0/STATUS.md +389 -0
- sawmill_parser-0.1.0/assets/sawmill.png +3 -0
- sawmill_parser-0.1.0/docs/Makefile +14 -0
- sawmill_parser-0.1.0/docs/conf.py +31 -0
- sawmill_parser-0.1.0/docs/development/contributing.rst +113 -0
- sawmill_parser-0.1.0/docs/getting-started/quickstart.rst +86 -0
- sawmill_parser-0.1.0/docs/getting-started/what-is-sawmill.rst +64 -0
- sawmill_parser-0.1.0/docs/index.rst +48 -0
- sawmill_parser-0.1.0/docs/plugin-guide/pre-defined-filters.rst +84 -0
- sawmill_parser-0.1.0/docs/plugin-guide/what-is-a-plugin.rst +84 -0
- sawmill_parser-0.1.0/docs/plugin-guide/writing-a-plugin.rst +283 -0
- sawmill_parser-0.1.0/docs/reference/api.rst +107 -0
- sawmill_parser-0.1.0/docs/reference/cli-reference.rst +135 -0
- sawmill_parser-0.1.0/docs/reference/file-formats.rst +148 -0
- sawmill_parser-0.1.0/docs/requirements.txt +4 -0
- sawmill_parser-0.1.0/docs/user-guide/ci-integration.rst +184 -0
- sawmill_parser-0.1.0/docs/user-guide/cli-usage.rst +166 -0
- sawmill_parser-0.1.0/docs/user-guide/sawmill-directory.rst +98 -0
- sawmill_parser-0.1.0/docs/user-guide/tui-usage.rst +180 -0
- sawmill_parser-0.1.0/docs/user-guide/waivers.rst +141 -0
- sawmill_parser-0.1.0/pyproject.toml +94 -0
- sawmill_parser-0.1.0/ralph-loop.sh +361 -0
- sawmill_parser-0.1.0/sawmill/__init__.py +3 -0
- sawmill_parser-0.1.0/sawmill/__main__.py +6 -0
- sawmill_parser-0.1.0/sawmill/cli/__init__.py +8 -0
- sawmill_parser-0.1.0/sawmill/cli/commands.py +620 -0
- sawmill_parser-0.1.0/sawmill/cli/formatting.py +250 -0
- sawmill_parser-0.1.0/sawmill/cli/processing.py +266 -0
- sawmill_parser-0.1.0/sawmill/cli/reporting.py +250 -0
- sawmill_parser-0.1.0/sawmill/core/__init__.py +68 -0
- sawmill_parser-0.1.0/sawmill/core/aggregation.py +391 -0
- sawmill_parser-0.1.0/sawmill/core/config.py +208 -0
- sawmill_parser-0.1.0/sawmill/core/filter.py +163 -0
- sawmill_parser-0.1.0/sawmill/core/plugin.py +215 -0
- sawmill_parser-0.1.0/sawmill/core/severity.py +94 -0
- sawmill_parser-0.1.0/sawmill/core/suppress.py +89 -0
- sawmill_parser-0.1.0/sawmill/core/waiver.py +562 -0
- sawmill_parser-0.1.0/sawmill/models/__init__.py +25 -0
- sawmill_parser-0.1.0/sawmill/models/filter_def.py +41 -0
- sawmill_parser-0.1.0/sawmill/models/message.py +101 -0
- sawmill_parser-0.1.0/sawmill/models/plugin_api.py +117 -0
- sawmill_parser-0.1.0/sawmill/models/waiver.py +61 -0
- sawmill_parser-0.1.0/sawmill/plugin/__init__.py +227 -0
- sawmill_parser-0.1.0/sawmill/plugin/hookspec.py +186 -0
- sawmill_parser-0.1.0/sawmill/tui/__init__.py +9 -0
- sawmill_parser-0.1.0/sawmill/tui/app.py +1008 -0
- sawmill_parser-0.1.0/sawmill/tui/base.tcss +407 -0
- sawmill_parser-0.1.0/sawmill/tui/filter_parser.py +81 -0
- sawmill_parser-0.1.0/sawmill/tui/theme.py +41 -0
- sawmill_parser-0.1.0/sawmill/tui/widgets/__init__.py +14 -0
- sawmill_parser-0.1.0/sawmill/tui/widgets/footer.py +70 -0
- sawmill_parser-0.1.0/sawmill/tui/widgets/quit_modal.py +97 -0
- sawmill_parser-0.1.0/sawmill/tui/widgets/waive_modal.py +236 -0
- sawmill_parser-0.1.0/sawmill/utils/__init__.py +6 -0
- sawmill_parser-0.1.0/sawmill/utils/author.py +55 -0
- sawmill_parser-0.1.0/sawmill/utils/dirs.py +66 -0
- sawmill_parser-0.1.0/sawmill/utils/git.py +48 -0
- sawmill_parser-0.1.0/sawmill/utils/toml.py +58 -0
- sawmill_parser-0.1.0/sourceme +56 -0
- sawmill_parser-0.1.0/tests/__init__.py +1 -0
- sawmill_parser-0.1.0/tests/conftest.py +57 -0
- sawmill_parser-0.1.0/tests/core/__init__.py +0 -0
- sawmill_parser-0.1.0/tests/core/test_aggregation.py +477 -0
- sawmill_parser-0.1.0/tests/core/test_config.py +344 -0
- sawmill_parser-0.1.0/tests/core/test_filter.py +406 -0
- sawmill_parser-0.1.0/tests/core/test_plugin_autodetect.py +288 -0
- sawmill_parser-0.1.0/tests/core/test_plugin_manager.py +173 -0
- sawmill_parser-0.1.0/tests/core/test_suppress.py +163 -0
- sawmill_parser-0.1.0/tests/core/test_waiver.py +576 -0
- sawmill_parser-0.1.0/tests/core/test_waiver_matching.py +693 -0
- sawmill_parser-0.1.0/tests/fixtures/vivado.log +3020 -0
- sawmill_parser-0.1.0/tests/models/__init__.py +0 -0
- sawmill_parser-0.1.0/tests/models/test_filter_def.py +80 -0
- sawmill_parser-0.1.0/tests/models/test_message.py +115 -0
- sawmill_parser-0.1.0/tests/plugin/__init__.py +0 -0
- sawmill_parser-0.1.0/tests/plugin/test_hookspec.py +151 -0
- sawmill_parser-0.1.0/tests/plugins/__init__.py +0 -0
- sawmill_parser-0.1.0/tests/plugins/test_vivado.py +338 -0
- sawmill_parser-0.1.0/tests/test_ci_mode.py +534 -0
- sawmill_parser-0.1.0/tests/test_ci_report.py +652 -0
- sawmill_parser-0.1.0/tests/test_ci_waivers.py +609 -0
- sawmill_parser-0.1.0/tests/test_cli.py +399 -0
- sawmill_parser-0.1.0/tests/test_cli_formats.py +331 -0
- sawmill_parser-0.1.0/tests/test_cli_id_filter.py +362 -0
- sawmill_parser-0.1.0/tests/test_cli_integration.py +594 -0
- sawmill_parser-0.1.0/tests/test_cli_plugin_discovery.py +126 -0
- sawmill_parser-0.1.0/tests/test_cli_summary.py +240 -0
- sawmill_parser-0.1.0/tests/test_fixtures.py +54 -0
- sawmill_parser-0.1.0/tests/test_plugin_api.py +402 -0
- sawmill_parser-0.1.0/tests/test_project_setup.py +17 -0
- sawmill_parser-0.1.0/tests/test_waiver_generation.py +786 -0
- sawmill_parser-0.1.0/tests/tui/__init__.py +1 -0
- sawmill_parser-0.1.0/tests/tui/test_app.py +490 -0
- sawmill_parser-0.1.0/tests/tui/test_base_styles.py +179 -0
- sawmill_parser-0.1.0/tests/tui/test_filter_parser.py +103 -0
- sawmill_parser-0.1.0/tests/tui/test_footer.py +30 -0
- sawmill_parser-0.1.0/tests/tui/test_persistence.py +724 -0
- sawmill_parser-0.1.0/tests/tui/test_suppress.py +330 -0
- sawmill_parser-0.1.0/tests/tui/test_waive.py +486 -0
- sawmill_parser-0.1.0/tests/utils/__init__.py +1 -0
- sawmill_parser-0.1.0/tests/utils/test_dirs.py +84 -0
- sawmill_parser-0.1.0/tests/utils/test_git.py +143 -0
- sawmill_parser-0.1.0/tests/utils/test_toml.py +174 -0
- sawmill_parser-0.1.0/tools/sawmill-plugin-generator/pyproject.toml +30 -0
- sawmill_parser-0.1.0/tools/sawmill-plugin-generator/src/sawmill_plugin_generator/__init__.py +1 -0
- sawmill_parser-0.1.0/tools/sawmill-plugin-generator/src/sawmill_plugin_generator/cli.py +61 -0
- sawmill_parser-0.1.0/tools/sawmill-plugin-generator/src/sawmill_plugin_generator/generator.py +88 -0
- sawmill_parser-0.1.0/tools/sawmill-plugin-generator/src/sawmill_plugin_generator/names.py +59 -0
- sawmill_parser-0.1.0/tools/sawmill-plugin-generator/src/sawmill_plugin_generator/templates/conftest.py.j2 +28 -0
- sawmill_parser-0.1.0/tools/sawmill-plugin-generator/src/sawmill_plugin_generator/templates/init.py.j2 +5 -0
- sawmill_parser-0.1.0/tools/sawmill-plugin-generator/src/sawmill_plugin_generator/templates/makefile.j2 +14 -0
- sawmill_parser-0.1.0/tools/sawmill-plugin-generator/src/sawmill_plugin_generator/templates/patterns.py.j2 +35 -0
- sawmill_parser-0.1.0/tools/sawmill-plugin-generator/src/sawmill_plugin_generator/templates/plugin.py.j2 +208 -0
- sawmill_parser-0.1.0/tools/sawmill-plugin-generator/src/sawmill_plugin_generator/templates/pyproject.toml.j2 +44 -0
- sawmill_parser-0.1.0/tools/sawmill-plugin-generator/src/sawmill_plugin_generator/templates/readme.md.j2 +46 -0
- sawmill_parser-0.1.0/tools/sawmill-plugin-generator/src/sawmill_plugin_generator/templates/sample_log.j2 +15 -0
- sawmill_parser-0.1.0/tools/sawmill-plugin-generator/src/sawmill_plugin_generator/templates/test_detection.py.j2 +32 -0
- sawmill_parser-0.1.0/tools/sawmill-plugin-generator/src/sawmill_plugin_generator/templates/test_parsing.py.j2 +42 -0
- sawmill_parser-0.1.0/tools/sawmill-plugin-generator/src/sawmill_plugin_generator/templates/test_plugin_contract.py.j2 +75 -0
- sawmill_parser-0.1.0/tools/sawmill-plugin-generator/src/sawmill_plugin_generator/templates/test_severity.py.j2 +42 -0
- sawmill_parser-0.1.0/tools/sawmill-plugin-generator/tests/test_cli.py +67 -0
- sawmill_parser-0.1.0/tools/sawmill-plugin-generator/tests/test_generator.py +164 -0
- sawmill_parser-0.1.0/tools/sawmill-plugin-generator/tests/test_names.py +74 -0
- 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]
|