qgis-plugin-analyzer 1.3.0__py3-none-any.whl → 1.4.0__py3-none-any.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.
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: qgis-plugin-analyzer
3
- Version: 1.3.0
3
+ Version: 1.4.0
4
4
  Summary: A professional static analysis tool for QGIS (PyQGIS) plugins
5
5
  Author-email: geociencio <juanbernales@gmail.com>
6
6
  License: GPL-3.0-or-later
@@ -27,6 +27,8 @@ License-File: LICENSE
27
27
  Dynamic: license-file
28
28
 
29
29
  # QGIS Plugin Analyzer 🛡️
30
+
31
+ 👉 **[View Full Rules Catalog (RULES.md)](RULES.md)**
30
32
  ![GitHub release (latest by date)](https://img.shields.io/github/v/release/geociencio/qgis-plugin-analyzer?color=blue&logo=github)
31
33
  ![Python Version](https://img.shields.io/badge/python-3.8%2B-blue?logo=python)
32
34
  ![License](https://img.shields.io/badge/License-GPLv3-blue.svg)
@@ -86,6 +88,11 @@ If you have [uv](https://github.com/astral-sh/uv) installed, you can install the
86
88
  uv tool install git+https://github.com/geociencio/qgis-plugin-analyzer.git
87
89
  ```
88
90
 
91
+ **2. Standard pip installation (Git):**
92
+ ```bash
93
+ pip install git+https://github.com/geociencio/qgis-plugin-analyzer.git
94
+ ```
95
+
89
96
  **2. Local installation for development:**
90
97
  ```bash
91
98
  git clone https://github.com/geociencio/qgis-plugin-analyzer
@@ -122,10 +129,9 @@ You can run `qgis-plugin-analyzer` automatically before every commit to ensure q
122
129
 
123
130
  ```yaml
124
131
  - repo: https://github.com/geociencio/qgis-plugin-analyzer
125
- rev: v1.1.0 # Use the latest tag
132
+ rev: v1.4.0 # Use the latest tag
126
133
  hooks:
127
134
  - id: qgis-plugin-analyzer
128
- - id: qgis-plugin-analyzer
129
135
  ```
130
136
 
131
137
  ## 🤖 GitHub Action
@@ -143,8 +149,38 @@ steps:
143
149
  args: --profile release
144
150
  ```
145
151
 
152
+ ## ⚙️ Configuration (`pyproject.toml`)
153
+
154
+ You can customize the analyzer's behavior using a `[tool.qgis-analyzer]` section in your `pyproject.toml`.
155
+
156
+ ```toml
157
+ [tool.qgis-analyzer]
158
+ # Profiles allow different settings for CI vs Local
159
+ [tool.qgis-analyzer.profiles.default]
160
+ strict = false
161
+ generate_html = false # CLI default
162
+
163
+ [tool.qgis-analyzer.profiles.release]
164
+ strict = true
165
+ fail_on_error = true
166
+
167
+ [tool.qgis-analyzer.profiles.default.rules]
168
+ QGS101 = "error" # Ban specific module imports
169
+ QGS105 = "warning" # Warn on iface usage
170
+ QGS303 = "ignore" # Ignore resource path checks
171
+ ```
172
+
173
+ ## ⚠️ Technical Limitations
174
+
175
+ This tool performs **Static Analysis** (AST & Regex parsing). It does **not** execute your code or load QGIS libraries.
176
+ - **Dynamic Imports**: Imports inside functions or conditional blocks might be analyzed differently than top-level imports.
177
+ - **Runtime Validation**: Checks like "Missing Resources" rely on static string analysis of `.qrc` files and path strings. It cannot verify resources loaded dynamically at runtime.
178
+ - **False Positives**: While we strive for accuracy, complex meta-programming or unusual patterns might trigger false positives. Use `# noqa` or `.analyzerignore` to handle these cases.
179
+
146
180
  ## ⌨️ Full CLI Reference
147
181
 
182
+ > **Note**: The Python package is named `qgis-plugin-analyzer`, but the command-line tool is installed as `qgis-analyzer`.
183
+
148
184
  ### `qgis-analyzer analyze`
149
185
  Audits an existing QGIS plugin repository.
150
186
 
@@ -22,9 +22,9 @@ analyzer/utils/config_utils.py,sha256=reNyUonmik8Tpwx0RbaslsiienIqPDeiXBfh4Pv23_
22
22
  analyzer/utils/logging_utils.py,sha256=V0z7XeF46tj2oI247j2fRRafClbtMDVscVmg2JFYHV4,1257
23
23
  analyzer/utils/path_utils.py,sha256=BkffM1TRKAMPCzLx49rQzmYHYGbPwlI41LCK5QoN2oU,4097
24
24
  analyzer/utils/performance_utils.py,sha256=M3mfMVrOvyfgQiCQB0R5IkkBnAx-L9er4fGR9UL5E-0,4253
25
- qgis_plugin_analyzer-1.3.0.dist-info/licenses/LICENSE,sha256=bMxViCXCE9h3bzmw6oUvy4R_CvzOrV3aYhIvjBPx20A,35091
26
- qgis_plugin_analyzer-1.3.0.dist-info/METADATA,sha256=H5proK4GbF0j0Dsalp_8H1yczJ_TF4iQ4oBsxPRcEvM,11400
27
- qgis_plugin_analyzer-1.3.0.dist-info/WHEEL,sha256=_zCd3N1l69ArxyTb8rzEoP9TpbYXkqRFSNOD5OuxnTs,91
28
- qgis_plugin_analyzer-1.3.0.dist-info/entry_points.txt,sha256=1dwiqkZC4hGYExrOgyhZkxv7CbClSZqJkVk42nlw1IY,52
29
- qgis_plugin_analyzer-1.3.0.dist-info/top_level.txt,sha256=i9U1DboCuTuaYpS-5GcgUeKIlSI00PoxYtnrfQWD8wo,18
30
- qgis_plugin_analyzer-1.3.0.dist-info/RECORD,,
25
+ qgis_plugin_analyzer-1.4.0.dist-info/licenses/LICENSE,sha256=bMxViCXCE9h3bzmw6oUvy4R_CvzOrV3aYhIvjBPx20A,35091
26
+ qgis_plugin_analyzer-1.4.0.dist-info/METADATA,sha256=nwhnhEsDydRGcYiq-OkdbqxYn3JptRCRcH90_WvloLg,12906
27
+ qgis_plugin_analyzer-1.4.0.dist-info/WHEEL,sha256=_zCd3N1l69ArxyTb8rzEoP9TpbYXkqRFSNOD5OuxnTs,91
28
+ qgis_plugin_analyzer-1.4.0.dist-info/entry_points.txt,sha256=1dwiqkZC4hGYExrOgyhZkxv7CbClSZqJkVk42nlw1IY,52
29
+ qgis_plugin_analyzer-1.4.0.dist-info/top_level.txt,sha256=i9U1DboCuTuaYpS-5GcgUeKIlSI00PoxYtnrfQWD8wo,18
30
+ qgis_plugin_analyzer-1.4.0.dist-info/RECORD,,