wexample-runner 9.3.0__tar.gz → 9.4.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_runner-9.3.0 → wexample_runner-9.4.0}/PKG-INFO +4 -4
- {wexample_runner-9.3.0 → wexample_runner-9.4.0}/README.md +2 -2
- {wexample_runner-9.3.0 → wexample_runner-9.4.0}/pyproject.toml +2 -2
- {wexample_runner-9.3.0 → wexample_runner-9.4.0}/src/wexample_runner/runner/abstract_docker_runner.py +5 -1
- {wexample_runner-9.3.0 → wexample_runner-9.4.0}/src/wexample_runner/__init__.py +0 -0
- {wexample_runner-9.3.0 → wexample_runner-9.4.0}/src/wexample_runner/py.typed +0 -0
- {wexample_runner-9.3.0 → wexample_runner-9.4.0}/src/wexample_runner/runner/__init__.py +0 -0
- {wexample_runner-9.3.0 → wexample_runner-9.4.0}/src/wexample_runner/runner/abstract_runner.py +0 -0
- {wexample_runner-9.3.0 → wexample_runner-9.4.0}/src/wexample_runner/runner/docker_attached_runner.py +0 -0
- {wexample_runner-9.3.0 → wexample_runner-9.4.0}/src/wexample_runner/runner/docker_runner.py +0 -0
- {wexample_runner-9.3.0 → wexample_runner-9.4.0}/src/wexample_runner/runner/local_runner.py +0 -0
- {wexample_runner-9.3.0 → wexample_runner-9.4.0}/src/wexample_runner/runner/ssh_runner.py +0 -0
- {wexample_runner-9.3.0 → wexample_runner-9.4.0}/src/wexample_runner/runner_config.py +0 -0
- {wexample_runner-9.3.0 → wexample_runner-9.4.0}/src/wexample_runner/runner_registry.py +0 -0
- {wexample_runner-9.3.0 → wexample_runner-9.4.0}/src/wexample_runner/runner_result.py +0 -0
- {wexample_runner-9.3.0 → wexample_runner-9.4.0}/tests/.gitkeep +0 -0
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.1
|
|
2
2
|
Name: wexample-runner
|
|
3
|
-
Version: 9.
|
|
3
|
+
Version: 9.4.0
|
|
4
4
|
Summary: Executes commands across local, SSH, and Docker environments through a unified runner interface with lifecycle management (build, start, stop, destroy)
|
|
5
5
|
Author-Email: weeger <contact@wexample.com>
|
|
6
6
|
License: MIT
|
|
@@ -10,7 +10,7 @@ Classifier: Operating System :: OS Independent
|
|
|
10
10
|
Project-URL: homepage, https://github.com/wexample/python-runner
|
|
11
11
|
Requires-Python: >=3.10
|
|
12
12
|
Requires-Dist: paramiko>=3.0.0
|
|
13
|
-
Requires-Dist: wexample-helpers>=
|
|
13
|
+
Requires-Dist: wexample-helpers>=20.0.0
|
|
14
14
|
Provides-Extra: dev
|
|
15
15
|
Requires-Dist: pytest; extra == "dev"
|
|
16
16
|
Requires-Dist: pytest-cov; extra == "dev"
|
|
@@ -18,7 +18,7 @@ Description-Content-Type: text/markdown
|
|
|
18
18
|
|
|
19
19
|
# runner
|
|
20
20
|
|
|
21
|
-
Version: 9.
|
|
21
|
+
Version: 9.4.0
|
|
22
22
|
|
|
23
23
|
`wexample-runner` gives Python ≥ 3.10 code a single `execute(cmd)` call that runs shell commands on the local machine via subprocess, on a remote server over SSH (paramiko), or inside a Docker container — without the caller branching on the target environment. Every runner follows the same `build / start / stop / destroy` lifecycle and returns a `RunnerResult` dataclass carrying `stdout`, `stderr`, and `exit_code`. It targets developers who automate operations across mixed execution environments and want one interface that works regardless of where the command lands.
|
|
24
24
|
|
|
@@ -238,7 +238,7 @@ Visit the [Wexample Suite documentation](https://docs.wexample.com) for the comp
|
|
|
238
238
|
## Dependencies
|
|
239
239
|
|
|
240
240
|
- paramiko: >=3.0.0
|
|
241
|
-
- wexample-helpers: >=
|
|
241
|
+
- wexample-helpers: >=20.0.0
|
|
242
242
|
|
|
243
243
|
## Versioning & Compatibility Policy
|
|
244
244
|
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
# runner
|
|
2
2
|
|
|
3
|
-
Version: 9.
|
|
3
|
+
Version: 9.4.0
|
|
4
4
|
|
|
5
5
|
`wexample-runner` gives Python ≥ 3.10 code a single `execute(cmd)` call that runs shell commands on the local machine via subprocess, on a remote server over SSH (paramiko), or inside a Docker container — without the caller branching on the target environment. Every runner follows the same `build / start / stop / destroy` lifecycle and returns a `RunnerResult` dataclass carrying `stdout`, `stderr`, and `exit_code`. It targets developers who automate operations across mixed execution environments and want one interface that works regardless of where the command lands.
|
|
6
6
|
|
|
@@ -220,7 +220,7 @@ Visit the [Wexample Suite documentation](https://docs.wexample.com) for the comp
|
|
|
220
220
|
## Dependencies
|
|
221
221
|
|
|
222
222
|
- paramiko: >=3.0.0
|
|
223
|
-
- wexample-helpers: >=
|
|
223
|
+
- wexample-helpers: >=20.0.0
|
|
224
224
|
|
|
225
225
|
## Versioning & Compatibility Policy
|
|
226
226
|
|
|
@@ -6,7 +6,7 @@ build-backend = "pdm.backend"
|
|
|
6
6
|
|
|
7
7
|
[project]
|
|
8
8
|
name = "wexample-runner"
|
|
9
|
-
version = "9.
|
|
9
|
+
version = "9.4.0"
|
|
10
10
|
description = "Executes commands across local, SSH, and Docker environments through a unified runner interface with lifecycle management (build, start, stop, destroy)"
|
|
11
11
|
authors = [
|
|
12
12
|
{ name = "weeger", email = "contact@wexample.com" },
|
|
@@ -19,7 +19,7 @@ classifiers = [
|
|
|
19
19
|
]
|
|
20
20
|
dependencies = [
|
|
21
21
|
"paramiko>=3.0.0",
|
|
22
|
-
"wexample-helpers>=
|
|
22
|
+
"wexample-helpers>=20.0.0",
|
|
23
23
|
]
|
|
24
24
|
|
|
25
25
|
[project.readme]
|
{wexample_runner-9.3.0 → wexample_runner-9.4.0}/src/wexample_runner/runner/abstract_docker_runner.py
RENAMED
|
@@ -44,6 +44,7 @@ class AbstractDockerRunner(AbstractRunner):
|
|
|
44
44
|
cmd: list[str] | str,
|
|
45
45
|
workdir: str | None = None,
|
|
46
46
|
env: dict[str, str] | None = None,
|
|
47
|
+
stdin: str | None = None,
|
|
47
48
|
) -> RunnerResult:
|
|
48
49
|
import subprocess
|
|
49
50
|
|
|
@@ -54,6 +55,9 @@ class AbstractDockerRunner(AbstractRunner):
|
|
|
54
55
|
|
|
55
56
|
docker_cmd = ["docker", "exec"]
|
|
56
57
|
|
|
58
|
+
if stdin is not None:
|
|
59
|
+
docker_cmd.append("--interactive")
|
|
60
|
+
|
|
57
61
|
if self.user:
|
|
58
62
|
docker_cmd += ["--user", self.user]
|
|
59
63
|
|
|
@@ -68,7 +72,7 @@ class AbstractDockerRunner(AbstractRunner):
|
|
|
68
72
|
docker_cmd += [self.container_name] + cmd
|
|
69
73
|
|
|
70
74
|
try:
|
|
71
|
-
result = shell_run(cmd=docker_cmd, check=False, capture=True)
|
|
75
|
+
result = shell_run(cmd=docker_cmd, check=False, capture=True, stdin=stdin)
|
|
72
76
|
return RunnerResult(
|
|
73
77
|
stdout=result.stdout or "",
|
|
74
78
|
stderr=result.stderr or "",
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{wexample_runner-9.3.0 → wexample_runner-9.4.0}/src/wexample_runner/runner/abstract_runner.py
RENAMED
|
File without changes
|
{wexample_runner-9.3.0 → wexample_runner-9.4.0}/src/wexample_runner/runner/docker_attached_runner.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|