wexample-wex-addon-dev-python 9.0.0__tar.gz → 10.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.
- {wexample_wex_addon_dev_python-9.0.0 → wexample_wex_addon_dev_python-10.1.0}/PKG-INFO +4 -4
- {wexample_wex_addon_dev_python-9.0.0 → wexample_wex_addon_dev_python-10.1.0}/README.md +2 -2
- {wexample_wex_addon_dev_python-9.0.0 → wexample_wex_addon_dev_python-10.1.0}/pyproject.toml +2 -2
- {wexample_wex_addon_dev_python-9.0.0 → wexample_wex_addon_dev_python-10.1.0}/src/wexample_wex_addon_dev_python/workdir/python_workdir.py +17 -23
- {wexample_wex_addon_dev_python-9.0.0 → wexample_wex_addon_dev_python-10.1.0}/src/wexample_wex_addon_dev_python/__init__.py +0 -0
- {wexample_wex_addon_dev_python-9.0.0 → wexample_wex_addon_dev_python-10.1.0}/src/wexample_wex_addon_dev_python/__pycache__/__init__.py +0 -0
- {wexample_wex_addon_dev_python-9.0.0 → wexample_wex_addon_dev_python-10.1.0}/src/wexample_wex_addon_dev_python/commands/__init__.py +0 -0
- {wexample_wex_addon_dev_python-9.0.0 → wexample_wex_addon_dev_python-10.1.0}/src/wexample_wex_addon_dev_python/commands/code/__init__.py +0 -0
- {wexample_wex_addon_dev_python-9.0.0 → wexample_wex_addon_dev_python-10.1.0}/src/wexample_wex_addon_dev_python/commands/code/check/__init__.py +0 -0
- {wexample_wex_addon_dev_python-9.0.0 → wexample_wex_addon_dev_python-10.1.0}/src/wexample_wex_addon_dev_python/commands/code/check/mypy.py +0 -0
- {wexample_wex_addon_dev_python-9.0.0 → wexample_wex_addon_dev_python-10.1.0}/src/wexample_wex_addon_dev_python/commands/code/check/pylint.py +0 -0
- {wexample_wex_addon_dev_python-9.0.0 → wexample_wex_addon_dev_python-10.1.0}/src/wexample_wex_addon_dev_python/commands/code/check/pyright.py +0 -0
- {wexample_wex_addon_dev_python-9.0.0 → wexample_wex_addon_dev_python-10.1.0}/src/wexample_wex_addon_dev_python/commands/code/check.py +0 -0
- {wexample_wex_addon_dev_python-9.0.0 → wexample_wex_addon_dev_python-10.1.0}/src/wexample_wex_addon_dev_python/commands/code/format/__init__.py +0 -0
- {wexample_wex_addon_dev_python-9.0.0 → wexample_wex_addon_dev_python-10.1.0}/src/wexample_wex_addon_dev_python/commands/code/format/black.py +0 -0
- {wexample_wex_addon_dev_python-9.0.0 → wexample_wex_addon_dev_python-10.1.0}/src/wexample_wex_addon_dev_python/commands/code/format/isort.py +0 -0
- {wexample_wex_addon_dev_python-9.0.0 → wexample_wex_addon_dev_python-10.1.0}/src/wexample_wex_addon_dev_python/commands/code/format.py +0 -0
- {wexample_wex_addon_dev_python-9.0.0 → wexample_wex_addon_dev_python-10.1.0}/src/wexample_wex_addon_dev_python/commands/examples/__init__.py +0 -0
- {wexample_wex_addon_dev_python-9.0.0 → wexample_wex_addon_dev_python-10.1.0}/src/wexample_wex_addon_dev_python/commands/examples/utils/__init__.py +0 -0
- {wexample_wex_addon_dev_python-9.0.0 → wexample_wex_addon_dev_python-10.1.0}/src/wexample_wex_addon_dev_python/commands/examples/utils/some_example_type.py +0 -0
- {wexample_wex_addon_dev_python-9.0.0 → wexample_wex_addon_dev_python-10.1.0}/src/wexample_wex_addon_dev_python/commands/examples/validate.py +0 -0
- {wexample_wex_addon_dev_python-9.0.0 → wexample_wex_addon_dev_python-10.1.0}/src/wexample_wex_addon_dev_python/commands/release/__init__.py +0 -0
- {wexample_wex_addon_dev_python-9.0.0 → wexample_wex_addon_dev_python-10.1.0}/src/wexample_wex_addon_dev_python/common/__init__.py +0 -0
- {wexample_wex_addon_dev_python-9.0.0 → wexample_wex_addon_dev_python-10.1.0}/src/wexample_wex_addon_dev_python/common/pypi_registry_gateway.py +0 -0
- {wexample_wex_addon_dev_python-9.0.0 → wexample_wex_addon_dev_python-10.1.0}/src/wexample_wex_addon_dev_python/config_value/__init__.py +0 -0
- {wexample_wex_addon_dev_python-9.0.0 → wexample_wex_addon_dev_python-10.1.0}/src/wexample_wex_addon_dev_python/config_value/__pycache__/__init__.py +0 -0
- {wexample_wex_addon_dev_python-9.0.0 → wexample_wex_addon_dev_python-10.1.0}/src/wexample_wex_addon_dev_python/config_value/python_package_readme_config_value.py +0 -0
- {wexample_wex_addon_dev_python-9.0.0 → wexample_wex_addon_dev_python-10.1.0}/src/wexample_wex_addon_dev_python/const/__init__.py +0 -0
- {wexample_wex_addon_dev_python-9.0.0 → wexample_wex_addon_dev_python-10.1.0}/src/wexample_wex_addon_dev_python/const/__pycache__/__init__.py +0 -0
- {wexample_wex_addon_dev_python-9.0.0 → wexample_wex_addon_dev_python-10.1.0}/src/wexample_wex_addon_dev_python/const/package.py +0 -0
- {wexample_wex_addon_dev_python-9.0.0 → wexample_wex_addon_dev_python-10.1.0}/src/wexample_wex_addon_dev_python/const/python.py +0 -0
- {wexample_wex_addon_dev_python-9.0.0 → wexample_wex_addon_dev_python-10.1.0}/src/wexample_wex_addon_dev_python/const/tags.py +0 -0
- {wexample_wex_addon_dev_python-9.0.0 → wexample_wex_addon_dev_python-10.1.0}/src/wexample_wex_addon_dev_python/file/__init__.py +0 -0
- {wexample_wex_addon_dev_python-9.0.0 → wexample_wex_addon_dev_python-10.1.0}/src/wexample_wex_addon_dev_python/file/__pycache__/__init__.py +0 -0
- {wexample_wex_addon_dev_python-9.0.0 → wexample_wex_addon_dev_python-10.1.0}/src/wexample_wex_addon_dev_python/file/python_app_iml_file.py +0 -0
- {wexample_wex_addon_dev_python-9.0.0 → wexample_wex_addon_dev_python-10.1.0}/src/wexample_wex_addon_dev_python/file/python_pyproject_toml_file.py +0 -0
- {wexample_wex_addon_dev_python-9.0.0 → wexample_wex_addon_dev_python-10.1.0}/src/wexample_wex_addon_dev_python/helpers/__init__.py +0 -0
- {wexample_wex_addon_dev_python-9.0.0 → wexample_wex_addon_dev_python-10.1.0}/src/wexample_wex_addon_dev_python/helpers/pdm.py +0 -0
- {wexample_wex_addon_dev_python-9.0.0 → wexample_wex_addon_dev_python-10.1.0}/src/wexample_wex_addon_dev_python/middleware/__init__.py +0 -0
- {wexample_wex_addon_dev_python-9.0.0 → wexample_wex_addon_dev_python-10.1.0}/src/wexample_wex_addon_dev_python/middleware/__pycache__/__init__.py +0 -0
- {wexample_wex_addon_dev_python-9.0.0 → wexample_wex_addon_dev_python-10.1.0}/src/wexample_wex_addon_dev_python/middleware/each_python_file_middleware.py +0 -0
- {wexample_wex_addon_dev_python-9.0.0 → wexample_wex_addon_dev_python-10.1.0}/src/wexample_wex_addon_dev_python/py.typed +0 -0
- {wexample_wex_addon_dev_python-9.0.0 → wexample_wex_addon_dev_python-10.1.0}/src/wexample_wex_addon_dev_python/python_addon_manager.py +0 -0
- {wexample_wex_addon_dev_python-9.0.0 → wexample_wex_addon_dev_python-10.1.0}/src/wexample_wex_addon_dev_python/resources/.wex.yml +0 -0
- {wexample_wex_addon_dev_python-9.0.0 → wexample_wex_addon_dev_python-10.1.0}/src/wexample_wex_addon_dev_python/resources/docker/Dockerfile.python-profiling +0 -0
- {wexample_wex_addon_dev_python-9.0.0 → wexample_wex_addon_dev_python-10.1.0}/src/wexample_wex_addon_dev_python/resources/package_publish_gitlab.yml +0 -0
- {wexample_wex_addon_dev_python-9.0.0 → wexample_wex_addon_dev_python-10.1.0}/src/wexample_wex_addon_dev_python/resources/readme_templates/tests.md.j2 +0 -0
- {wexample_wex_addon_dev_python-9.0.0 → wexample_wex_addon_dev_python-10.1.0}/src/wexample_wex_addon_dev_python/services/__init__.py +0 -0
- {wexample_wex_addon_dev_python-9.0.0 → wexample_wex_addon_dev_python-10.1.0}/src/wexample_wex_addon_dev_python/services/python/__init__.py +0 -0
- {wexample_wex_addon_dev_python-9.0.0 → wexample_wex_addon_dev_python-10.1.0}/src/wexample_wex_addon_dev_python/services/python/app_service.py +0 -0
- {wexample_wex_addon_dev_python-9.0.0 → wexample_wex_addon_dev_python-10.1.0}/src/wexample_wex_addon_dev_python/services/python/commands/__init__.py +0 -0
- {wexample_wex_addon_dev_python-9.0.0 → wexample_wex_addon_dev_python-10.1.0}/src/wexample_wex_addon_dev_python/services/python/commands/service/__init__.py +0 -0
- {wexample_wex_addon_dev_python-9.0.0 → wexample_wex_addon_dev_python-10.1.0}/src/wexample_wex_addon_dev_python/services/python/commands/service/install.py +0 -0
- {wexample_wex_addon_dev_python-9.0.0 → wexample_wex_addon_dev_python-10.1.0}/src/wexample_wex_addon_dev_python/services/python/commands/service/setup.py +0 -0
- {wexample_wex_addon_dev_python-9.0.0 → wexample_wex_addon_dev_python-10.1.0}/src/wexample_wex_addon_dev_python/services/python/docker/.wex.yml +0 -0
- {wexample_wex_addon_dev_python-9.0.0 → wexample_wex_addon_dev_python-10.1.0}/src/wexample_wex_addon_dev_python/services/python/docker/docker-compose.yml +0 -0
- {wexample_wex_addon_dev_python-9.0.0 → wexample_wex_addon_dev_python-10.1.0}/src/wexample_wex_addon_dev_python/services/python/samples/__init__.py +0 -0
- {wexample_wex_addon_dev_python-9.0.0 → wexample_wex_addon_dev_python-10.1.0}/src/wexample_wex_addon_dev_python/services/python/samples/docker/__init__.py +0 -0
- {wexample_wex_addon_dev_python-9.0.0 → wexample_wex_addon_dev_python-10.1.0}/src/wexample_wex_addon_dev_python/services/python/samples/docker/docker-compose.yml +0 -0
- {wexample_wex_addon_dev_python-9.0.0 → wexample_wex_addon_dev_python-10.1.0}/src/wexample_wex_addon_dev_python/services/python/samples/docker/entrypoint.sh +0 -0
- {wexample_wex_addon_dev_python-9.0.0 → wexample_wex_addon_dev_python-10.1.0}/src/wexample_wex_addon_dev_python/services/python/samples/docker/images/Dockerfile.base +0 -0
- {wexample_wex_addon_dev_python-9.0.0 → wexample_wex_addon_dev_python-10.1.0}/src/wexample_wex_addon_dev_python/services/python/samples/docker/images/Dockerfile.develop +0 -0
- {wexample_wex_addon_dev_python-9.0.0 → wexample_wex_addon_dev_python-10.1.0}/src/wexample_wex_addon_dev_python/services/python/samples/docker/images/__init__.py +0 -0
- {wexample_wex_addon_dev_python-9.0.0 → wexample_wex_addon_dev_python-10.1.0}/src/wexample_wex_addon_dev_python/services/python/service.yml +0 -0
- {wexample_wex_addon_dev_python-9.0.0 → wexample_wex_addon_dev_python-10.1.0}/src/wexample_wex_addon_dev_python/workdir/__init__.py +0 -0
- {wexample_wex_addon_dev_python-9.0.0 → wexample_wex_addon_dev_python-10.1.0}/src/wexample_wex_addon_dev_python/workdir/__pycache__/__init__.py +0 -0
- {wexample_wex_addon_dev_python-9.0.0 → wexample_wex_addon_dev_python-10.1.0}/src/wexample_wex_addon_dev_python/workdir/mixin/__init__.py +0 -0
- {wexample_wex_addon_dev_python-9.0.0 → wexample_wex_addon_dev_python-10.1.0}/src/wexample_wex_addon_dev_python/workdir/mixin/with_profiling_python_workdir_mixin.py +0 -0
- {wexample_wex_addon_dev_python-9.0.0 → wexample_wex_addon_dev_python-10.1.0}/src/wexample_wex_addon_dev_python/workdir/python_package_workdir.py +0 -0
- {wexample_wex_addon_dev_python-9.0.0 → wexample_wex_addon_dev_python-10.1.0}/src/wexample_wex_addon_dev_python/workdir/python_packages_suite_workdir.py +0 -0
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.1
|
|
2
2
|
Name: wexample-wex-addon-dev-python
|
|
3
|
-
Version:
|
|
3
|
+
Version: 10.1.0
|
|
4
4
|
Summary: Python dev addon for wex
|
|
5
5
|
Author-Email: weeger <contact@wexample.com>
|
|
6
6
|
License: MIT
|
|
@@ -18,7 +18,7 @@ Requires-Dist: pyright
|
|
|
18
18
|
Requires-Dist: wexample-api>=6.3.0
|
|
19
19
|
Requires-Dist: wexample-filestate-python>=6.8.0
|
|
20
20
|
Requires-Dist: wexample-wex-addon-ai>=9.0.0
|
|
21
|
-
Requires-Dist: wexample-wex-addon-app>=25.
|
|
21
|
+
Requires-Dist: wexample-wex-addon-app>=25.1.0
|
|
22
22
|
Provides-Extra: dev
|
|
23
23
|
Requires-Dist: pytest; extra == "dev"
|
|
24
24
|
Requires-Dist: pytest-cov; extra == "dev"
|
|
@@ -26,7 +26,7 @@ Description-Content-Type: text/markdown
|
|
|
26
26
|
|
|
27
27
|
# wex_addon_dev_python
|
|
28
28
|
|
|
29
|
-
Version:
|
|
29
|
+
Version: 10.1.0
|
|
30
30
|
|
|
31
31
|
Python dev addon for wex
|
|
32
32
|
|
|
@@ -115,7 +115,7 @@ Visit the [Wexample Suite documentation](https://docs.wexample.com) for the comp
|
|
|
115
115
|
- wexample-api: >=6.3.0
|
|
116
116
|
- wexample-filestate-python: >=6.8.0
|
|
117
117
|
- wexample-wex-addon-ai: >=9.0.0
|
|
118
|
-
- wexample-wex-addon-app: >=25.
|
|
118
|
+
- wexample-wex-addon-app: >=25.1.0
|
|
119
119
|
|
|
120
120
|
## Versioning & Compatibility Policy
|
|
121
121
|
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
# wex_addon_dev_python
|
|
2
2
|
|
|
3
|
-
Version:
|
|
3
|
+
Version: 10.1.0
|
|
4
4
|
|
|
5
5
|
Python dev addon for wex
|
|
6
6
|
|
|
@@ -89,7 +89,7 @@ Visit the [Wexample Suite documentation](https://docs.wexample.com) for the comp
|
|
|
89
89
|
- wexample-api: >=6.3.0
|
|
90
90
|
- wexample-filestate-python: >=6.8.0
|
|
91
91
|
- wexample-wex-addon-ai: >=9.0.0
|
|
92
|
-
- wexample-wex-addon-app: >=25.
|
|
92
|
+
- wexample-wex-addon-app: >=25.1.0
|
|
93
93
|
|
|
94
94
|
## Versioning & Compatibility Policy
|
|
95
95
|
|
|
@@ -6,7 +6,7 @@ build-backend = "pdm.backend"
|
|
|
6
6
|
|
|
7
7
|
[project]
|
|
8
8
|
name = "wexample-wex-addon-dev-python"
|
|
9
|
-
version = "
|
|
9
|
+
version = "10.1.0"
|
|
10
10
|
description = "Python dev addon for wex"
|
|
11
11
|
authors = [
|
|
12
12
|
{ name = "weeger", email = "contact@wexample.com" },
|
|
@@ -27,7 +27,7 @@ dependencies = [
|
|
|
27
27
|
"wexample-api>=6.3.0",
|
|
28
28
|
"wexample-filestate-python>=6.8.0",
|
|
29
29
|
"wexample-wex-addon-ai>=9.0.0",
|
|
30
|
-
"wexample-wex-addon-app>=25.
|
|
30
|
+
"wexample-wex-addon-app>=25.1.0",
|
|
31
31
|
]
|
|
32
32
|
|
|
33
33
|
[project.readme]
|
|
@@ -156,21 +156,6 @@ class PythonWorkdir(
|
|
|
156
156
|
return self.get_path() / ".venv"
|
|
157
157
|
return Path(venv_path_config.get_str())
|
|
158
158
|
|
|
159
|
-
def has_coverage_changes_since_last_report(self) -> bool:
|
|
160
|
-
"""Return True if coverage has changed since last saved report."""
|
|
161
|
-
last_report = (
|
|
162
|
-
self.app_workdir.get_config()
|
|
163
|
-
.search("test.coverage.last_report")
|
|
164
|
-
.get_dict_or_default()
|
|
165
|
-
)
|
|
166
|
-
|
|
167
|
-
if not last_report:
|
|
168
|
-
return True
|
|
169
|
-
|
|
170
|
-
current_coverage = self._run_coverage()
|
|
171
|
-
|
|
172
|
-
return current_coverage != last_report.get("percent")
|
|
173
|
-
|
|
174
159
|
def has_tests(self) -> bool:
|
|
175
160
|
# The tests/ directory itself is filestate-managed scaffolding and
|
|
176
161
|
# exists for every Python package; only actual test files count.
|
|
@@ -321,17 +306,27 @@ class PythonWorkdir(
|
|
|
321
306
|
format = format or PYTHON_PYTEST_COV_FORMAT_JSON
|
|
322
307
|
self.shell_run_for_app(cmd=self.test_get_command(format=format))
|
|
323
308
|
|
|
324
|
-
|
|
325
|
-
|
|
326
|
-
|
|
309
|
+
# pytest-cov writes no report at all when nothing was measured
|
|
310
|
+
# (e.g. tests that never import the covered module) — a legitimate
|
|
311
|
+
# outcome it signals with a warning, not a failure.
|
|
312
|
+
json_path = self.get_path() / PYTHON_FILE_PYTEST_COVERAGE_JSON
|
|
313
|
+
if not json_path.exists():
|
|
314
|
+
self.warning(
|
|
315
|
+
"Tests passed but coverage collected no data "
|
|
316
|
+
"(covered module never imported); no report stored."
|
|
317
|
+
)
|
|
318
|
+
return
|
|
319
|
+
|
|
320
|
+
json_file = JsonFile.create_from_path(path=json_path)
|
|
327
321
|
totals = json_file.read_config().search("totals", default={}).get_dict()
|
|
328
322
|
|
|
329
323
|
from wexample_helpers_git.helpers.git import git_get_current_commit_hash
|
|
330
324
|
|
|
331
|
-
|
|
332
|
-
|
|
333
|
-
|
|
334
|
-
"test
|
|
325
|
+
# Derived state, not configuration: lives in .wex/local/ (untracked)
|
|
326
|
+
# so test runs never dirty the repository.
|
|
327
|
+
self.set_local_data_value(
|
|
328
|
+
"test",
|
|
329
|
+
"coverage_last_report",
|
|
335
330
|
{
|
|
336
331
|
"commit_hash": git_get_current_commit_hash(cwd=self.get_path()),
|
|
337
332
|
"covered": totals.get("covered_lines", 0),
|
|
@@ -341,7 +336,6 @@ class PythonWorkdir(
|
|
|
341
336
|
"total": totals.get("num_statements", 0),
|
|
342
337
|
},
|
|
343
338
|
)
|
|
344
|
-
config_file.write_config()
|
|
345
339
|
|
|
346
340
|
if format == PYTHON_PYTEST_COV_FORMAT_HTML:
|
|
347
341
|
report_path = self.get_path() / PYTHON_PYTEST_COV_REPORT_DIR / "index.html"
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|