wexample-wex-addon-dev-python 8.10.1__tar.gz → 10.0.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-8.10.1 → wexample_wex_addon_dev_python-10.0.0}/PKG-INFO +4 -4
- {wexample_wex_addon_dev_python-8.10.1 → wexample_wex_addon_dev_python-10.0.0}/README.md +2 -2
- {wexample_wex_addon_dev_python-8.10.1 → wexample_wex_addon_dev_python-10.0.0}/pyproject.toml +2 -2
- {wexample_wex_addon_dev_python-8.10.1 → wexample_wex_addon_dev_python-10.0.0}/src/wexample_wex_addon_dev_python/workdir/python_workdir.py +55 -28
- {wexample_wex_addon_dev_python-8.10.1 → wexample_wex_addon_dev_python-10.0.0}/src/wexample_wex_addon_dev_python/__init__.py +0 -0
- {wexample_wex_addon_dev_python-8.10.1 → wexample_wex_addon_dev_python-10.0.0}/src/wexample_wex_addon_dev_python/__pycache__/__init__.py +0 -0
- {wexample_wex_addon_dev_python-8.10.1 → wexample_wex_addon_dev_python-10.0.0}/src/wexample_wex_addon_dev_python/commands/__init__.py +0 -0
- {wexample_wex_addon_dev_python-8.10.1 → wexample_wex_addon_dev_python-10.0.0}/src/wexample_wex_addon_dev_python/commands/code/__init__.py +0 -0
- {wexample_wex_addon_dev_python-8.10.1 → wexample_wex_addon_dev_python-10.0.0}/src/wexample_wex_addon_dev_python/commands/code/check/__init__.py +0 -0
- {wexample_wex_addon_dev_python-8.10.1 → wexample_wex_addon_dev_python-10.0.0}/src/wexample_wex_addon_dev_python/commands/code/check/mypy.py +0 -0
- {wexample_wex_addon_dev_python-8.10.1 → wexample_wex_addon_dev_python-10.0.0}/src/wexample_wex_addon_dev_python/commands/code/check/pylint.py +0 -0
- {wexample_wex_addon_dev_python-8.10.1 → wexample_wex_addon_dev_python-10.0.0}/src/wexample_wex_addon_dev_python/commands/code/check/pyright.py +0 -0
- {wexample_wex_addon_dev_python-8.10.1 → wexample_wex_addon_dev_python-10.0.0}/src/wexample_wex_addon_dev_python/commands/code/check.py +0 -0
- {wexample_wex_addon_dev_python-8.10.1 → wexample_wex_addon_dev_python-10.0.0}/src/wexample_wex_addon_dev_python/commands/code/format/__init__.py +0 -0
- {wexample_wex_addon_dev_python-8.10.1 → wexample_wex_addon_dev_python-10.0.0}/src/wexample_wex_addon_dev_python/commands/code/format/black.py +0 -0
- {wexample_wex_addon_dev_python-8.10.1 → wexample_wex_addon_dev_python-10.0.0}/src/wexample_wex_addon_dev_python/commands/code/format/isort.py +0 -0
- {wexample_wex_addon_dev_python-8.10.1 → wexample_wex_addon_dev_python-10.0.0}/src/wexample_wex_addon_dev_python/commands/code/format.py +0 -0
- {wexample_wex_addon_dev_python-8.10.1 → wexample_wex_addon_dev_python-10.0.0}/src/wexample_wex_addon_dev_python/commands/examples/__init__.py +0 -0
- {wexample_wex_addon_dev_python-8.10.1 → wexample_wex_addon_dev_python-10.0.0}/src/wexample_wex_addon_dev_python/commands/examples/utils/__init__.py +0 -0
- {wexample_wex_addon_dev_python-8.10.1 → wexample_wex_addon_dev_python-10.0.0}/src/wexample_wex_addon_dev_python/commands/examples/utils/some_example_type.py +0 -0
- {wexample_wex_addon_dev_python-8.10.1 → wexample_wex_addon_dev_python-10.0.0}/src/wexample_wex_addon_dev_python/commands/examples/validate.py +0 -0
- {wexample_wex_addon_dev_python-8.10.1 → wexample_wex_addon_dev_python-10.0.0}/src/wexample_wex_addon_dev_python/commands/release/__init__.py +0 -0
- {wexample_wex_addon_dev_python-8.10.1 → wexample_wex_addon_dev_python-10.0.0}/src/wexample_wex_addon_dev_python/common/__init__.py +0 -0
- {wexample_wex_addon_dev_python-8.10.1 → wexample_wex_addon_dev_python-10.0.0}/src/wexample_wex_addon_dev_python/common/pypi_registry_gateway.py +0 -0
- {wexample_wex_addon_dev_python-8.10.1 → wexample_wex_addon_dev_python-10.0.0}/src/wexample_wex_addon_dev_python/config_value/__init__.py +0 -0
- {wexample_wex_addon_dev_python-8.10.1 → wexample_wex_addon_dev_python-10.0.0}/src/wexample_wex_addon_dev_python/config_value/__pycache__/__init__.py +0 -0
- {wexample_wex_addon_dev_python-8.10.1 → wexample_wex_addon_dev_python-10.0.0}/src/wexample_wex_addon_dev_python/config_value/python_package_readme_config_value.py +0 -0
- {wexample_wex_addon_dev_python-8.10.1 → wexample_wex_addon_dev_python-10.0.0}/src/wexample_wex_addon_dev_python/const/__init__.py +0 -0
- {wexample_wex_addon_dev_python-8.10.1 → wexample_wex_addon_dev_python-10.0.0}/src/wexample_wex_addon_dev_python/const/__pycache__/__init__.py +0 -0
- {wexample_wex_addon_dev_python-8.10.1 → wexample_wex_addon_dev_python-10.0.0}/src/wexample_wex_addon_dev_python/const/package.py +0 -0
- {wexample_wex_addon_dev_python-8.10.1 → wexample_wex_addon_dev_python-10.0.0}/src/wexample_wex_addon_dev_python/const/python.py +0 -0
- {wexample_wex_addon_dev_python-8.10.1 → wexample_wex_addon_dev_python-10.0.0}/src/wexample_wex_addon_dev_python/const/tags.py +0 -0
- {wexample_wex_addon_dev_python-8.10.1 → wexample_wex_addon_dev_python-10.0.0}/src/wexample_wex_addon_dev_python/file/__init__.py +0 -0
- {wexample_wex_addon_dev_python-8.10.1 → wexample_wex_addon_dev_python-10.0.0}/src/wexample_wex_addon_dev_python/file/__pycache__/__init__.py +0 -0
- {wexample_wex_addon_dev_python-8.10.1 → wexample_wex_addon_dev_python-10.0.0}/src/wexample_wex_addon_dev_python/file/python_app_iml_file.py +0 -0
- {wexample_wex_addon_dev_python-8.10.1 → wexample_wex_addon_dev_python-10.0.0}/src/wexample_wex_addon_dev_python/file/python_pyproject_toml_file.py +0 -0
- {wexample_wex_addon_dev_python-8.10.1 → wexample_wex_addon_dev_python-10.0.0}/src/wexample_wex_addon_dev_python/helpers/__init__.py +0 -0
- {wexample_wex_addon_dev_python-8.10.1 → wexample_wex_addon_dev_python-10.0.0}/src/wexample_wex_addon_dev_python/helpers/pdm.py +0 -0
- {wexample_wex_addon_dev_python-8.10.1 → wexample_wex_addon_dev_python-10.0.0}/src/wexample_wex_addon_dev_python/middleware/__init__.py +0 -0
- {wexample_wex_addon_dev_python-8.10.1 → wexample_wex_addon_dev_python-10.0.0}/src/wexample_wex_addon_dev_python/middleware/__pycache__/__init__.py +0 -0
- {wexample_wex_addon_dev_python-8.10.1 → wexample_wex_addon_dev_python-10.0.0}/src/wexample_wex_addon_dev_python/middleware/each_python_file_middleware.py +0 -0
- {wexample_wex_addon_dev_python-8.10.1 → wexample_wex_addon_dev_python-10.0.0}/src/wexample_wex_addon_dev_python/py.typed +0 -0
- {wexample_wex_addon_dev_python-8.10.1 → wexample_wex_addon_dev_python-10.0.0}/src/wexample_wex_addon_dev_python/python_addon_manager.py +0 -0
- {wexample_wex_addon_dev_python-8.10.1 → wexample_wex_addon_dev_python-10.0.0}/src/wexample_wex_addon_dev_python/resources/.wex.yml +0 -0
- {wexample_wex_addon_dev_python-8.10.1 → wexample_wex_addon_dev_python-10.0.0}/src/wexample_wex_addon_dev_python/resources/docker/Dockerfile.python-profiling +0 -0
- {wexample_wex_addon_dev_python-8.10.1 → wexample_wex_addon_dev_python-10.0.0}/src/wexample_wex_addon_dev_python/resources/package_publish_gitlab.yml +0 -0
- {wexample_wex_addon_dev_python-8.10.1 → wexample_wex_addon_dev_python-10.0.0}/src/wexample_wex_addon_dev_python/resources/readme_templates/tests.md.j2 +0 -0
- {wexample_wex_addon_dev_python-8.10.1 → wexample_wex_addon_dev_python-10.0.0}/src/wexample_wex_addon_dev_python/services/__init__.py +0 -0
- {wexample_wex_addon_dev_python-8.10.1 → wexample_wex_addon_dev_python-10.0.0}/src/wexample_wex_addon_dev_python/services/python/__init__.py +0 -0
- {wexample_wex_addon_dev_python-8.10.1 → wexample_wex_addon_dev_python-10.0.0}/src/wexample_wex_addon_dev_python/services/python/app_service.py +0 -0
- {wexample_wex_addon_dev_python-8.10.1 → wexample_wex_addon_dev_python-10.0.0}/src/wexample_wex_addon_dev_python/services/python/commands/__init__.py +0 -0
- {wexample_wex_addon_dev_python-8.10.1 → wexample_wex_addon_dev_python-10.0.0}/src/wexample_wex_addon_dev_python/services/python/commands/service/__init__.py +0 -0
- {wexample_wex_addon_dev_python-8.10.1 → wexample_wex_addon_dev_python-10.0.0}/src/wexample_wex_addon_dev_python/services/python/commands/service/install.py +0 -0
- {wexample_wex_addon_dev_python-8.10.1 → wexample_wex_addon_dev_python-10.0.0}/src/wexample_wex_addon_dev_python/services/python/commands/service/setup.py +0 -0
- {wexample_wex_addon_dev_python-8.10.1 → wexample_wex_addon_dev_python-10.0.0}/src/wexample_wex_addon_dev_python/services/python/docker/.wex.yml +0 -0
- {wexample_wex_addon_dev_python-8.10.1 → wexample_wex_addon_dev_python-10.0.0}/src/wexample_wex_addon_dev_python/services/python/docker/docker-compose.yml +0 -0
- {wexample_wex_addon_dev_python-8.10.1 → wexample_wex_addon_dev_python-10.0.0}/src/wexample_wex_addon_dev_python/services/python/samples/__init__.py +0 -0
- {wexample_wex_addon_dev_python-8.10.1 → wexample_wex_addon_dev_python-10.0.0}/src/wexample_wex_addon_dev_python/services/python/samples/docker/__init__.py +0 -0
- {wexample_wex_addon_dev_python-8.10.1 → wexample_wex_addon_dev_python-10.0.0}/src/wexample_wex_addon_dev_python/services/python/samples/docker/docker-compose.yml +0 -0
- {wexample_wex_addon_dev_python-8.10.1 → wexample_wex_addon_dev_python-10.0.0}/src/wexample_wex_addon_dev_python/services/python/samples/docker/entrypoint.sh +0 -0
- {wexample_wex_addon_dev_python-8.10.1 → wexample_wex_addon_dev_python-10.0.0}/src/wexample_wex_addon_dev_python/services/python/samples/docker/images/Dockerfile.base +0 -0
- {wexample_wex_addon_dev_python-8.10.1 → wexample_wex_addon_dev_python-10.0.0}/src/wexample_wex_addon_dev_python/services/python/samples/docker/images/Dockerfile.develop +0 -0
- {wexample_wex_addon_dev_python-8.10.1 → wexample_wex_addon_dev_python-10.0.0}/src/wexample_wex_addon_dev_python/services/python/samples/docker/images/__init__.py +0 -0
- {wexample_wex_addon_dev_python-8.10.1 → wexample_wex_addon_dev_python-10.0.0}/src/wexample_wex_addon_dev_python/services/python/service.yml +0 -0
- {wexample_wex_addon_dev_python-8.10.1 → wexample_wex_addon_dev_python-10.0.0}/src/wexample_wex_addon_dev_python/workdir/__init__.py +0 -0
- {wexample_wex_addon_dev_python-8.10.1 → wexample_wex_addon_dev_python-10.0.0}/src/wexample_wex_addon_dev_python/workdir/__pycache__/__init__.py +0 -0
- {wexample_wex_addon_dev_python-8.10.1 → wexample_wex_addon_dev_python-10.0.0}/src/wexample_wex_addon_dev_python/workdir/mixin/__init__.py +0 -0
- {wexample_wex_addon_dev_python-8.10.1 → wexample_wex_addon_dev_python-10.0.0}/src/wexample_wex_addon_dev_python/workdir/mixin/with_profiling_python_workdir_mixin.py +0 -0
- {wexample_wex_addon_dev_python-8.10.1 → wexample_wex_addon_dev_python-10.0.0}/src/wexample_wex_addon_dev_python/workdir/python_package_workdir.py +0 -0
- {wexample_wex_addon_dev_python-8.10.1 → wexample_wex_addon_dev_python-10.0.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.0.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>=
|
|
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.0.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: >=
|
|
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.0.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: >=
|
|
92
|
+
- wexample-wex-addon-app: >=25.1.0
|
|
93
93
|
|
|
94
94
|
## Versioning & Compatibility Policy
|
|
95
95
|
|
{wexample_wex_addon_dev_python-8.10.1 → wexample_wex_addon_dev_python-10.0.0}/pyproject.toml
RENAMED
|
@@ -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.0.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>=
|
|
30
|
+
"wexample-wex-addon-app>=25.1.0",
|
|
31
31
|
]
|
|
32
32
|
|
|
33
33
|
[project.readme]
|
|
@@ -82,6 +82,22 @@ class PythonWorkdir(
|
|
|
82
82
|
# Use standard PDM install
|
|
83
83
|
return venv_path
|
|
84
84
|
|
|
85
|
+
def count_tests(self) -> int:
|
|
86
|
+
import re
|
|
87
|
+
|
|
88
|
+
tests_path = self.get_path() / "tests"
|
|
89
|
+
if not tests_path.is_dir():
|
|
90
|
+
return 0
|
|
91
|
+
|
|
92
|
+
count = 0
|
|
93
|
+
for file in tests_path.rglob("test_*.py"):
|
|
94
|
+
count += len(
|
|
95
|
+
re.findall(
|
|
96
|
+
r"^\s*(?:async )?def test_", file.read_text(), flags=re.MULTILINE
|
|
97
|
+
)
|
|
98
|
+
)
|
|
99
|
+
return count
|
|
100
|
+
|
|
85
101
|
def get_app_config_file(self, reload: bool = True) -> PythonPyprojectTomlFile:
|
|
86
102
|
from wexample_wex_addon_dev_python.file.python_pyproject_toml_file import (
|
|
87
103
|
PythonPyprojectTomlFile,
|
|
@@ -123,7 +139,7 @@ class PythonWorkdir(
|
|
|
123
139
|
return string_to_kebab_case(self.get_package_import_name())
|
|
124
140
|
|
|
125
141
|
def get_python_exec_module_command(self, module_name: str) -> list[str]:
|
|
126
|
-
return [self.get_python_path(), "-m", module_name]
|
|
142
|
+
return [str(self.get_python_path()), "-m", module_name]
|
|
127
143
|
|
|
128
144
|
def get_python_path(self) -> Path:
|
|
129
145
|
return self.get_venv_bin_path() / "python"
|
|
@@ -132,22 +148,21 @@ class PythonWorkdir(
|
|
|
132
148
|
return self.get_venv_path() / "bin"
|
|
133
149
|
|
|
134
150
|
def get_venv_path(self) -> Path:
|
|
135
|
-
|
|
136
|
-
|
|
137
|
-
|
|
138
|
-
|
|
139
|
-
|
|
140
|
-
self.
|
|
141
|
-
|
|
142
|
-
.get_dict_or_default()
|
|
143
|
-
)
|
|
144
|
-
|
|
145
|
-
if not last_report:
|
|
146
|
-
return True
|
|
147
|
-
|
|
148
|
-
current_coverage = self._run_coverage()
|
|
151
|
+
# The suite/app config may point every package to a single shared
|
|
152
|
+
# venv (python.venv_path); the local .venv is only the standalone
|
|
153
|
+
# fallback.
|
|
154
|
+
venv_path_config = self.search_app_or_suite_runtime_config("python.venv_path")
|
|
155
|
+
if venv_path_config.is_none():
|
|
156
|
+
return self.get_path() / ".venv"
|
|
157
|
+
return Path(venv_path_config.get_str())
|
|
149
158
|
|
|
150
|
-
|
|
159
|
+
def has_tests(self) -> bool:
|
|
160
|
+
# The tests/ directory itself is filestate-managed scaffolding and
|
|
161
|
+
# exists for every Python package; only actual test files count.
|
|
162
|
+
tests_path = self.get_path() / "tests"
|
|
163
|
+
if not tests_path.is_dir():
|
|
164
|
+
return False
|
|
165
|
+
return any(tests_path.rglob("test_*.py"))
|
|
151
166
|
|
|
152
167
|
def operation_add_event_listener(
|
|
153
168
|
self,
|
|
@@ -274,16 +289,21 @@ class PythonWorkdir(
|
|
|
274
289
|
self, format: str = PYTHON_PYTEST_COV_FORMAT_JSON
|
|
275
290
|
) -> list[str]:
|
|
276
291
|
cmd = self.get_python_exec_module_command("pytest")
|
|
292
|
+
# The json report is always produced: it feeds test.coverage.last_report.
|
|
293
|
+
# The requested format is added as an extra view when it differs.
|
|
277
294
|
cmd.extend(
|
|
278
295
|
[
|
|
279
296
|
"--cov",
|
|
280
|
-
f"--cov-report={
|
|
297
|
+
f"--cov-report={PYTHON_PYTEST_COV_FORMAT_JSON}",
|
|
281
298
|
]
|
|
282
299
|
)
|
|
300
|
+
if format != PYTHON_PYTEST_COV_FORMAT_JSON:
|
|
301
|
+
cmd.append(f"--cov-report={format}")
|
|
283
302
|
|
|
284
303
|
return cmd
|
|
285
304
|
|
|
286
|
-
def test_run(self, format: str =
|
|
305
|
+
def test_run(self, format: str | None = None) -> None:
|
|
306
|
+
format = format or PYTHON_PYTEST_COV_FORMAT_JSON
|
|
287
307
|
self.shell_run_for_app(cmd=self.test_get_command(format=format))
|
|
288
308
|
|
|
289
309
|
json_file = JsonFile.create_from_path(
|
|
@@ -291,11 +311,15 @@ class PythonWorkdir(
|
|
|
291
311
|
)
|
|
292
312
|
totals = json_file.read_config().search("totals", default={}).get_dict()
|
|
293
313
|
|
|
294
|
-
|
|
295
|
-
|
|
296
|
-
|
|
297
|
-
|
|
314
|
+
from wexample_helpers_git.helpers.git import git_get_current_commit_hash
|
|
315
|
+
|
|
316
|
+
# Derived state, not configuration: lives in .wex/local/ (untracked)
|
|
317
|
+
# so test runs never dirty the repository.
|
|
318
|
+
self.set_local_data_value(
|
|
319
|
+
"test",
|
|
320
|
+
"coverage_last_report",
|
|
298
321
|
{
|
|
322
|
+
"commit_hash": git_get_current_commit_hash(cwd=self.get_path()),
|
|
299
323
|
"covered": totals.get("covered_lines", 0),
|
|
300
324
|
"excluded": totals.get("excluded_lines", 0),
|
|
301
325
|
"missing": totals.get("missing_lines", 0),
|
|
@@ -303,7 +327,6 @@ class PythonWorkdir(
|
|
|
303
327
|
"total": totals.get("num_statements", 0),
|
|
304
328
|
},
|
|
305
329
|
)
|
|
306
|
-
config_file.write_config()
|
|
307
330
|
|
|
308
331
|
if format == PYTHON_PYTEST_COV_FORMAT_HTML:
|
|
309
332
|
report_path = self.get_path() / PYTHON_PYTEST_COV_REPORT_DIR / "index.html"
|
|
@@ -541,13 +564,17 @@ class PythonWorkdir(
|
|
|
541
564
|
self, venv_path: Path, env: str | None = None, force: bool = False
|
|
542
565
|
) -> None:
|
|
543
566
|
from wexample_wex_addon_app.helpers.python import (
|
|
544
|
-
|
|
567
|
+
python_install_dependency_in_venv,
|
|
545
568
|
)
|
|
546
569
|
|
|
547
|
-
|
|
548
|
-
#
|
|
549
|
-
|
|
550
|
-
|
|
570
|
+
# Installing the package itself (editable, with dev extras) pulls
|
|
571
|
+
# runtime and test dependencies while honoring the version
|
|
572
|
+
# constraints of pyproject.toml — pytest must be present for the
|
|
573
|
+
# publication test phase.
|
|
574
|
+
python_install_dependency_in_venv(
|
|
575
|
+
venv_path=venv_path,
|
|
576
|
+
name=f"{self.get_path()}[dev]",
|
|
577
|
+
editable=True,
|
|
551
578
|
)
|
|
552
579
|
|
|
553
580
|
def _on_test_event(self, event: Event) -> None:
|
|
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
|