structloglint 0.1.1__py3-none-win_amd64.whl

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.
@@ -0,0 +1,108 @@
1
+ Metadata-Version: 2.4
2
+ Name: structloglint
3
+ Version: 0.1.1
4
+ Classifier: Development Status :: 3 - Alpha
5
+ Classifier: Environment :: Console
6
+ Classifier: Intended Audience :: Developers
7
+ Classifier: License :: OSI Approved :: MIT License
8
+ Classifier: Programming Language :: Python :: 3
9
+ Classifier: Programming Language :: Rust
10
+ Classifier: Topic :: Software Development :: Quality Assurance
11
+ Summary: A fast, opinionated linter for structlog log calls in Python. Written in Rust.
12
+ Keywords: structlog,linter,logging,rust
13
+ License-Expression: MIT
14
+ Requires-Python: >=3.8
15
+ Description-Content-Type: text/markdown; charset=UTF-8; variant=GFM
16
+ Project-URL: Repository, https://github.com/maeldorne/structloglint
17
+
18
+ # structloglint
19
+
20
+ A fast, opinionated linter for [structlog](https://www.structlog.org/) log calls in Python. Written in Rust.
21
+
22
+ > **Status: Early development (v0.1.0)**
23
+
24
+ ## Installation
25
+
26
+ ```bash
27
+ uv pip install structloglint
28
+ ```
29
+
30
+ ### From source
31
+
32
+ ```bash
33
+ uv venv
34
+ source .venv/bin/activate
35
+ uv pip install maturin
36
+ maturin develop --release
37
+ ```
38
+
39
+ ## Usage
40
+
41
+ ```bash
42
+ structloglint --path src/ --verbose
43
+ ```
44
+
45
+ See [RULES.md](RULES.md) for the full list of rules (SL001--SL009) and planned configuration options.
46
+
47
+ ## Roadmap (MoSCoW)
48
+
49
+ ### Done
50
+
51
+ | Area | Detail |
52
+ |------|--------|
53
+ | Linting rules | SL001--SL009 fully implemented with unit tests |
54
+ | AST walker | Recursive Python AST traversal via `rustpython-parser` with parent context tracking (19 block types) |
55
+ | Logger detection | Naming-convention heuristic (matches `log`, `logger`, `LOG`, `*_logger`, etc.) |
56
+ | CLI | `--path`, `--verbose`, `--output-format full\|concise` via `clap` |
57
+ | Output | Colored diagnostics with source context, gutter markers, and underline spans |
58
+ | Fix data model | `Fix` struct exists, SL008 generates fix suggestions |
59
+ | Test data | Per-rule Python fixtures (`test_data/SL00x.py`) + comprehensive e-commerce example |
60
+ | Python packaging | maturin build so `uv pip install structloglint` works |
61
+
62
+ ### Must Have
63
+
64
+ | Area | Detail | Status |
65
+ |------|--------|--------|
66
+ | `pyproject.toml` config | Parse `[tool.structloglint]` for include/exclude, case style, max length, per-rule severity | not started (values hardcoded) |
67
+ | `--fix` flag | Apply auto-fixes in-place (SL008 fix model already exists) | not started |
68
+ | CLI parity | `--file` single-file mode, `--event-case-style`, `--loop-log-level` flags | not started |
69
+ | Pre-commit hook | `.pre-commit-hooks.yaml` so repos can add the linter to `.pre-commit-config.yaml` | not started |
70
+ | CI/CD | GitHub Actions: lint, test, build on push/PR | not started |
71
+ | Release management | `release-please` for automated changelogs, version bumps, and GitHub releases | not started |
72
+ | Cross-platform builds | CI matrix for Linux, macOS, Windows (x86_64 + aarch64) | not started |
73
+ | Binary distribution | Publish wheels per platform to PyPI via maturin | not started |
74
+ | Exit codes | Non-zero exit on findings for CI gating | not started |
75
+ | Integration tests | End-to-end tests that invoke the binary against `test_data/` and assert output/exit code | not started |
76
+ | Inline suppression | `# noqa: SL001` style comments to suppress per-line | not started |
77
+
78
+ ### Should Have
79
+
80
+ | Area | Detail | Status |
81
+ |------|--------|--------|
82
+ | CHANGELOG | Auto-generated via release-please | not started |
83
+ | SARIF / JSON output | Machine-readable output for CI integrations (GitHub code scanning, etc.) | not started |
84
+ | `--diff` mode | Show fixes as unified diffs without applying | not started |
85
+ | SL010 rule | Event string should use past tense | not started |
86
+ | Benchmarks | Performance regression tracking in CI | not started |
87
+
88
+ ### Could Have
89
+
90
+ | Area | Detail |
91
+ |------|--------|
92
+ | GitHub Action | Marketplace action for direct use in workflows |
93
+ | Editor integration | VSCode extension / LSP server |
94
+ | Custom rule plugins | User-defined rules via config or scripting |
95
+ | Watch mode | Re-lint on file change |
96
+
97
+ ### Won't Have (for now)
98
+
99
+ | Area | Reason |
100
+ |------|--------|
101
+ | Full type inference | Would require a Python type checker; naming heuristic is sufficient |
102
+ | Auto-fix for all rules | Some rules (SL005, SL007) require structural refactoring that can't be automated safely |
103
+ | flake8 plugin mode | Targeting standalone tool distribution like ruff instead |
104
+
105
+ ## License
106
+
107
+ MIT
108
+
@@ -0,0 +1,5 @@
1
+ structloglint-0.1.1.data/scripts/structloglint.exe,sha256=fJO2CDq-Jbg0S-VvQRV5YYMquJr1PnHYXXcuxMdcrl8,4771840
2
+ structloglint-0.1.1.dist-info/METADATA,sha256=-7pRdjG-1jU2ZZjrrgtF0Pc7iNAgoLyI13q6MVQP3Dc,4381
3
+ structloglint-0.1.1.dist-info/WHEEL,sha256=2zDlIYIdD4m4N3p5DVEG3iJhGLdhsBQgdH-FqVkAur8,94
4
+ structloglint-0.1.1.dist-info/sboms/structloglint.cyclonedx.json,sha256=4AG7maaD2qKQwjGXl0OcLWr0huf5QDUzlljCtPM3YLg,91542
5
+ structloglint-0.1.1.dist-info/RECORD,,
@@ -0,0 +1,4 @@
1
+ Wheel-Version: 1.0
2
+ Generator: maturin (1.14.1)
3
+ Root-Is-Purelib: false
4
+ Tag: py3-none-win_amd64