High-performance PowerShell bridge (C++ pybind11 backend)
Project description
virtualshell
High-performance Python façade over a C++ PowerShell runner.
A single long-lived PowerShell process is managed in C++, handling pipes, threads, timeouts and output demux; Python exposes a small, predictable API.
Features
- Persistent session to
pwsh/powershell(reuse modules,$env:*, functions, cwd) - Sync & async execution (Futures + optional callbacks)
- Script execution (positional / named args, optional dot-sourcing)
- Batch with per-command timeout & early-stop
- Clear failures (typed exceptions), context manager lifecycle
Install
pip install virtualshell
Platform & Python Support
Prebuilt wheels are provided via PyPI for common platforms and Python versions.
This means you can usually pip install virtualshell without needing a compiler.
Supported Python versions:
- 3.8, 3.9, 3.10, 3.11, 3.12, 3.13
Supported platforms:
- Windows (x86_64, MSVC build)
- Linux (x86_64, aarch64, manylinux2014/2.28)
- macOS (universal2: x86_64 + arm64)
If your platform is not listed above, pip will fall back to building from source.
See Building from source for details.
Requires PowerShell on
PATH(pwshpreferred,powershellalso supported).
Quick start
import virtualshell
# Create a shell with a 5s default timeout
sh = virtualshell.Shell(timeout_seconds=5).start()
# 1) One-liners (sync)
res = sh.run("Write-Output 'hello'")
print(res.out.strip()) # -> hello
# 2) Async single command
fut = sh.run_async("Write-Output 'async!'")
print(fut.result().out.strip())
# 3) Scripts with positional args
r = sh.run_script(r"C:\temp\demo.ps1", args=["alpha", "42"])
print(r.out)
# 4) Scripts with named args
r = sh.run_script_kv(r"C:\temp\demo.ps1", named_args={"Name":"Alice","Count":"3"})
print(r.out)
# 5) Context manager (auto-stop on exit)
with virtualshell.Shell(timeout_seconds=3) as s:
print(s.run("Write-Output 'inside with'").out.strip())
sh.stop()
Another example (stateful session):
from virtualshell import Shell
with Shell(timeout_seconds=3) as sh:
sh.run("function Inc { $global:i++; $global:i }")
nums = [sh.run("Inc").out.strip() for _ in range(5)]
print(nums) # ['1','2','3','4','5']
API (overview)
import virtualshell
from virtualshell import ExecutionResult # dataclass view
sh = virtualshell.Shell(
powershell_path=None, # optional explicit path
working_directory=None, # resolved to absolute path
timeout_seconds=5.0, # default per-command timeout
environment={"FOO": "BAR"}, # extra child env vars
initial_commands=["$ErrorActionPreference='Stop'"], # post-start setup
).start()
# Sync
res: ExecutionResult = sh.run("Get-Location | Select-Object -Expand Path")
# Scripts
res = sh.run_script(r"/path/to/job.ps1", args=["--fast","1"])
res = sh.run_script_kv(r"/path/to/job.ps1", named_args={"Mode":"Fast","Count":"1"})
res = sh.run_script(r"/path/init.ps1", dot_source=True)
# Async
f = sh.run_async("Write-Output 'ping'")
f2 = sh.run_async_batch(["$PSVersionTable", "Get-Random"])
# Convenience
res = sh.pwsh("literal 'quoted' string") # safe single-quoted literal
sh.stop()
Return type
By default you get a Python dataclass:
@dataclass(frozen=True)
class ExecutionResult:
out: str
err: str
exit_code: int
success: bool
execution_time: float
Pass as_dataclass=False to receive the raw C++ result object.
Timeouts
- Every method accepts a
timeout(orper_command_timeout) in seconds. - On timeout:
success=False,exit_code=-1,errcontains"timeout". - Async futures resolve with the timeout result; late output is dropped in C++.
Design notes
- Thin wrapper: heavy I/O in C++; Python does orchestration only.
- No surprises: stable API, documented side-effects.
- Clear failure modes:
raise_on_errorand typed exceptions. - Thread-friendly: async returns Futures/callbacks; no Python GIL-level locking.
- Boundary hygiene: explicit path/arg conversions, minimal marshalling.
Security
- The wrapper does not sanitize raw commands. Only
pwsh()applies literal single-quoting for data. - Don’t pass untrusted strings to
run*without proper quoting/sanitization. - Avoid logging secrets; env injection happens via
Shell(..., environment=...).
Performance
- Sync/async routes call into C++ directly; Python overhead is object creation + callback dispatch.
- Prefer batch/async for many small commands to amortize round-trips.
Lifetime
Shell.start()ensures a running backend;Shell.stop()tears it down.with Shell(...)guarantees stop-on-exit, even on exceptions.
Exceptions
from virtualshell.errors import (
VirtualShellError,
PowerShellNotFoundError,
ExecutionTimeoutError,
ExecutionError,
)
try:
res = sh.run("throw 'boom'", raise_on_error=True)
except ExecutionTimeoutError:
...
except ExecutionError as e:
print("PowerShell failed:", e)
ExecutionTimeoutErroris raised on timeouts ifraise_on_error=True.- Otherwise, APIs return
ExecutionResult(success=False).
Configuration tips
If PowerShell isn’t on PATH, pass powershell_path:
Shell(powershell_path=r"C:\Program Files\PowerShell\7\pwsh.exe")
Session setup example:
Shell(initial_commands=[
"$OutputEncoding = [Console]::OutputEncoding = [Text.UTF8Encoding]::new()",
"$ErrorActionPreference = 'Stop'"
])
Building from source (advanced)
Source builds require a C++ toolchain and CMake.
Prereqs: Python ≥3.8, C++17, CMake ≥3.20, scikit-build-core, pybind11.
# in repo root
python -m pip install -U pip build
python -m build # -> dist/*.whl, dist/*.tar.gz
python -m pip install dist/virtualshell-*.whl
Editable install:
python -m pip install -e .
- Linux wheels target manylinux_2_28 (x86_64/aarch64).
- macOS builds target universal2 (x86_64 + arm64).
Roadmap
- ✅ Windows x64 wheels (3.8–3.13)
- ✅ Linux x64/aarch64 wheels (manylinux_2_28)
- ✅ macOS x86_64/arm64 wheels
- ⏳ Streaming APIs and richer progress events
License
Apache 2.0 — see LICENSE.
Issues & feedback are welcome. Please include Python version, OS, your PowerShell path (pwsh/powershell), and a minimal repro.
Project details
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distributions
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file virtualshell-1.0.2.tar.gz.
File metadata
- Download URL: virtualshell-1.0.2.tar.gz
- Upload date:
- Size: 54.7 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.1.0 CPython/3.13.7
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
dcfd0c1120d585d09af712169fcd4b2d9380c23b171f814d79b83b2c4725e057
|
|
| MD5 |
16323145750aac1a51e1db92139fc4d1
|
|
| BLAKE2b-256 |
d2bd285ff49f05811649fa5b2ed263a29d778f809431b97379a15d202145dcf4
|
File details
Details for the file virtualshell-1.0.2-cp313-cp313-win_amd64.whl.
File metadata
- Download URL: virtualshell-1.0.2-cp313-cp313-win_amd64.whl
- Upload date:
- Size: 192.1 kB
- Tags: CPython 3.13, Windows x86-64
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.1.0 CPython/3.13.7
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
341c3fec04d2a40b1c890c2bee3377c2a0c65eb7b2611987d91aceb9804215fa
|
|
| MD5 |
8ca99c5b7e19531c9fe4a5057f11ebd9
|
|
| BLAKE2b-256 |
8ab13cbec7d988f33e7046a467d7b93a833093bcc98772af9c43793f329aedfb
|
File details
Details for the file virtualshell-1.0.2-cp313-cp313-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl.
File metadata
- Download URL: virtualshell-1.0.2-cp313-cp313-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl
- Upload date:
- Size: 287.4 kB
- Tags: CPython 3.13, manylinux: glibc 2.27+ x86-64, manylinux: glibc 2.28+ x86-64
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.1.0 CPython/3.13.7
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
523d4af5a12e5d7dace7d4350453a361707587e2c4c2d304f6ee8cb78bcab2ad
|
|
| MD5 |
be6e062b7f91dd7fd06dd12a3ec41bd3
|
|
| BLAKE2b-256 |
75fe5518481a125f2ab1a03947842d04e694b50101ddb354e94b849e97e3cf5b
|
File details
Details for the file virtualshell-1.0.2-cp313-cp313-manylinux_2_26_aarch64.manylinux_2_28_aarch64.whl.
File metadata
- Download URL: virtualshell-1.0.2-cp313-cp313-manylinux_2_26_aarch64.manylinux_2_28_aarch64.whl
- Upload date:
- Size: 257.8 kB
- Tags: CPython 3.13, manylinux: glibc 2.26+ ARM64, manylinux: glibc 2.28+ ARM64
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.1.0 CPython/3.13.7
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
6c47fecd0a8a64a4ec4e79863821616ea912f9c75cf5815f06ca4c720780b6d2
|
|
| MD5 |
933927b3dddccafbdeed0663c561e329
|
|
| BLAKE2b-256 |
ba94e33290b9d2f4dffa2069235d989166e239bd884cbd6e225398226d8a4feb
|
File details
Details for the file virtualshell-1.0.2-cp313-cp313-macosx_11_0_universal2.whl.
File metadata
- Download URL: virtualshell-1.0.2-cp313-cp313-macosx_11_0_universal2.whl
- Upload date:
- Size: 332.8 kB
- Tags: CPython 3.13, macOS 11.0+ universal2 (ARM64, x86-64)
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.1.0 CPython/3.13.7
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
7cb5a4e54075c8fb3661782507469bd472b0fad1ef3c9f4ba6506bd9657c67d1
|
|
| MD5 |
3078a4ad4c8d52d442eb9d04f5bcf66d
|
|
| BLAKE2b-256 |
ebf4d8ca5d7e28fa5bc9bfe1996c3ae8094bbc92f8f880eaf97a6b5942c7159e
|
File details
Details for the file virtualshell-1.0.2-cp312-cp312-win_amd64.whl.
File metadata
- Download URL: virtualshell-1.0.2-cp312-cp312-win_amd64.whl
- Upload date:
- Size: 192.0 kB
- Tags: CPython 3.12, Windows x86-64
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.1.0 CPython/3.13.7
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
78469aafb1e973fa175440436b08dc852f94511cf2f105096bd18c8c3b42ced2
|
|
| MD5 |
9b5fce78b0f9218e6ca2838cddf1bbed
|
|
| BLAKE2b-256 |
b0c46ced121418f50fbbf43f236be803401400ba5f7e703ee50788fac7a7e631
|
File details
Details for the file virtualshell-1.0.2-cp312-cp312-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl.
File metadata
- Download URL: virtualshell-1.0.2-cp312-cp312-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl
- Upload date:
- Size: 287.5 kB
- Tags: CPython 3.12, manylinux: glibc 2.27+ x86-64, manylinux: glibc 2.28+ x86-64
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.1.0 CPython/3.13.7
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
5b6ca312d520ed2afd67cc64112055aeebcc104b53ffe15dc0ceb04406bbbfe8
|
|
| MD5 |
65d656b50628679f599de5a994288d9b
|
|
| BLAKE2b-256 |
6061e7ab891d37b6d75efccdb39c1535a3b89bb490138bd38c4e2e5a130ebbd0
|
File details
Details for the file virtualshell-1.0.2-cp312-cp312-manylinux_2_26_aarch64.manylinux_2_28_aarch64.whl.
File metadata
- Download URL: virtualshell-1.0.2-cp312-cp312-manylinux_2_26_aarch64.manylinux_2_28_aarch64.whl
- Upload date:
- Size: 257.8 kB
- Tags: CPython 3.12, manylinux: glibc 2.26+ ARM64, manylinux: glibc 2.28+ ARM64
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.1.0 CPython/3.13.7
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
6586bde5337e8c709084bbbde628f2279832e3acc3e9687bab40d5e61783dcef
|
|
| MD5 |
c7e352a05e79b54efdf3903ca0002f11
|
|
| BLAKE2b-256 |
6fc737f0d7eb1e39dad7e3f497e29ed3089bd9e96df76b503752a244c7d06504
|
File details
Details for the file virtualshell-1.0.2-cp312-cp312-macosx_11_0_universal2.whl.
File metadata
- Download URL: virtualshell-1.0.2-cp312-cp312-macosx_11_0_universal2.whl
- Upload date:
- Size: 332.7 kB
- Tags: CPython 3.12, macOS 11.0+ universal2 (ARM64, x86-64)
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.1.0 CPython/3.13.7
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
bb00a671351154134a52eca43683d3792ee4a5125f89adac73cca095c30589cc
|
|
| MD5 |
a9eca5431688ab8f11b96ed4ba7bf766
|
|
| BLAKE2b-256 |
d353b1dbe67e231a3f75d59e67647a01783ef959b80cefdc8e971b631183bba5
|
File details
Details for the file virtualshell-1.0.2-cp311-cp311-win_amd64.whl.
File metadata
- Download URL: virtualshell-1.0.2-cp311-cp311-win_amd64.whl
- Upload date:
- Size: 191.1 kB
- Tags: CPython 3.11, Windows x86-64
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.1.0 CPython/3.13.7
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
15ea8d9f5540b763439ecbee0168c0caa291059b5126c5fd0054e56664e595a4
|
|
| MD5 |
8a9865465f3e60f4db4cb01eaa857ad6
|
|
| BLAKE2b-256 |
7798cc43ec63e0616dd65a66fcc55f3694adb7a351560b8d3592aa0733786417
|
File details
Details for the file virtualshell-1.0.2-cp311-cp311-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl.
File metadata
- Download URL: virtualshell-1.0.2-cp311-cp311-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl
- Upload date:
- Size: 285.1 kB
- Tags: CPython 3.11, manylinux: glibc 2.27+ x86-64, manylinux: glibc 2.28+ x86-64
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.1.0 CPython/3.13.7
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
76c3dd2c2d74297f696abf20ec8a27f6f85f3b7061f446394ebbeff4de6e2c39
|
|
| MD5 |
97ea48d0544d7cd5da71f0a708f5310f
|
|
| BLAKE2b-256 |
24f8eb0e41e3418dfd9638b7b428f3050ad0aae001bbfede62736105c9fac8fd
|
File details
Details for the file virtualshell-1.0.2-cp311-cp311-manylinux_2_26_aarch64.manylinux_2_28_aarch64.whl.
File metadata
- Download URL: virtualshell-1.0.2-cp311-cp311-manylinux_2_26_aarch64.manylinux_2_28_aarch64.whl
- Upload date:
- Size: 256.7 kB
- Tags: CPython 3.11, manylinux: glibc 2.26+ ARM64, manylinux: glibc 2.28+ ARM64
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.1.0 CPython/3.13.7
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
0ff7e175cb7562a062a39cfc20217ffbdd8db27fbc8f12b55d3032efd10404f6
|
|
| MD5 |
b7a101cd163059084e705bcfe25fbf59
|
|
| BLAKE2b-256 |
a75cf9a131cfaedc1b58ad85f01976f01db318efdc5079be2b880d2f785c4c08
|
File details
Details for the file virtualshell-1.0.2-cp311-cp311-macosx_11_0_universal2.whl.
File metadata
- Download URL: virtualshell-1.0.2-cp311-cp311-macosx_11_0_universal2.whl
- Upload date:
- Size: 330.6 kB
- Tags: CPython 3.11, macOS 11.0+ universal2 (ARM64, x86-64)
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.1.0 CPython/3.13.7
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
93d340288dadbfa42eb3c4cfdd3ab4a5f87ee6a6690ad98a72c0294f77647d44
|
|
| MD5 |
dd6f62b2a394d5cc9e5dbd93dc3412f2
|
|
| BLAKE2b-256 |
d2fefe204f53d4793f06315dc3aa62e4bdcde77847cc9c787af5d9fb4a8ad203
|
File details
Details for the file virtualshell-1.0.2-cp310-cp310-win_amd64.whl.
File metadata
- Download URL: virtualshell-1.0.2-cp310-cp310-win_amd64.whl
- Upload date:
- Size: 190.4 kB
- Tags: CPython 3.10, Windows x86-64
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.1.0 CPython/3.13.7
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
cf9fef13284792f984790b7592c52d833433d8893d2aa451ba8e7265bcc58769
|
|
| MD5 |
fc07b7aa6f3ebb22b6eef3aa174676f7
|
|
| BLAKE2b-256 |
bed3ed2ba1d2212509ee971b7124396cf078949a2135eef497f24d10fee17ae5
|
File details
Details for the file virtualshell-1.0.2-cp310-cp310-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl.
File metadata
- Download URL: virtualshell-1.0.2-cp310-cp310-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl
- Upload date:
- Size: 283.6 kB
- Tags: CPython 3.10, manylinux: glibc 2.27+ x86-64, manylinux: glibc 2.28+ x86-64
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.1.0 CPython/3.13.7
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
ecfdbe1455ff45568c37a32ca2bc3ae1e4ae89b6a0d41e9383331e4a8bb99814
|
|
| MD5 |
185d10aacaec3b42860e3e4a705d636e
|
|
| BLAKE2b-256 |
8d6b670024615557110ae768405fe92c5f510682c953b155133b18069ef1d09a
|
File details
Details for the file virtualshell-1.0.2-cp310-cp310-manylinux_2_26_aarch64.manylinux_2_28_aarch64.whl.
File metadata
- Download URL: virtualshell-1.0.2-cp310-cp310-manylinux_2_26_aarch64.manylinux_2_28_aarch64.whl
- Upload date:
- Size: 255.3 kB
- Tags: CPython 3.10, manylinux: glibc 2.26+ ARM64, manylinux: glibc 2.28+ ARM64
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.1.0 CPython/3.13.7
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
211fe7b24ee1a6d327c533ade4f46a16a4c407c575355570030c67f1c9f5e872
|
|
| MD5 |
b7e3c50bb4f25a511ea34b586721aa73
|
|
| BLAKE2b-256 |
e095aec9c74d83fb8badccf4bf8d9037dfafa6f11f55611d446524cc49e03481
|
File details
Details for the file virtualshell-1.0.2-cp310-cp310-macosx_11_0_universal2.whl.
File metadata
- Download URL: virtualshell-1.0.2-cp310-cp310-macosx_11_0_universal2.whl
- Upload date:
- Size: 327.9 kB
- Tags: CPython 3.10, macOS 11.0+ universal2 (ARM64, x86-64)
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.1.0 CPython/3.13.7
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
f7c36fc8ec84d90337195fdfd3f1adf0a6c996b22419aeb3c2291c842a511c94
|
|
| MD5 |
f977c9e9c9939bf4feb9064b7a279371
|
|
| BLAKE2b-256 |
669c337efaa02b642729657c630612f18dcfaf0e39755a67b70af16284511355
|
File details
Details for the file virtualshell-1.0.2-cp39-cp39-win_amd64.whl.
File metadata
- Download URL: virtualshell-1.0.2-cp39-cp39-win_amd64.whl
- Upload date:
- Size: 197.0 kB
- Tags: CPython 3.9, Windows x86-64
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.1.0 CPython/3.13.7
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
2b64b30ce6c03abe19bea8a6b0814cace7c8ea452c6ac56b1b0689cf36a86518
|
|
| MD5 |
e05b3590373c7cd04df627a1f524b42b
|
|
| BLAKE2b-256 |
3a9a616202e4e65f6c2c2f2c0b13b85c739b9a419c81417db5f12c22510eb1b2
|
File details
Details for the file virtualshell-1.0.2-cp39-cp39-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl.
File metadata
- Download URL: virtualshell-1.0.2-cp39-cp39-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl
- Upload date:
- Size: 283.6 kB
- Tags: CPython 3.9, manylinux: glibc 2.27+ x86-64, manylinux: glibc 2.28+ x86-64
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.1.0 CPython/3.13.7
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
6b13840829538a8f97bf9875ecc5209b572137d5ece286975c5ca774d61d7700
|
|
| MD5 |
cc074128fd030c7ccf4c99009e67e0cb
|
|
| BLAKE2b-256 |
9b5aae42ffe65abaa11970b3803baa1878288caf1940aa6ac08e1c63e5a5b6cc
|
File details
Details for the file virtualshell-1.0.2-cp39-cp39-manylinux_2_26_aarch64.manylinux_2_28_aarch64.whl.
File metadata
- Download URL: virtualshell-1.0.2-cp39-cp39-manylinux_2_26_aarch64.manylinux_2_28_aarch64.whl
- Upload date:
- Size: 255.7 kB
- Tags: CPython 3.9, manylinux: glibc 2.26+ ARM64, manylinux: glibc 2.28+ ARM64
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.1.0 CPython/3.13.7
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
de6156a9da8a49f3f135fd4edaa6a7cee923982b73230b0d73672c5b23aaef48
|
|
| MD5 |
c987cff165ccff677a9964880011f79e
|
|
| BLAKE2b-256 |
4bf4bbe5ed948a587c345df622897552161d1c454ba60e05eadcd0879f1a206a
|
File details
Details for the file virtualshell-1.0.2-cp39-cp39-macosx_11_0_universal2.whl.
File metadata
- Download URL: virtualshell-1.0.2-cp39-cp39-macosx_11_0_universal2.whl
- Upload date:
- Size: 328.1 kB
- Tags: CPython 3.9, macOS 11.0+ universal2 (ARM64, x86-64)
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.1.0 CPython/3.13.7
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
c0802cb96d59b772da7e1100f9525e4909e5bd6b6436463da1b07d5369fcdb52
|
|
| MD5 |
a29a7a4c43e560c1ce52dfce40023b51
|
|
| BLAKE2b-256 |
ae6590234110130aea848f9a60793aeac03cd05181fe8954d09892719ee19a54
|
File details
Details for the file virtualshell-1.0.2-cp38-cp38-win_amd64.whl.
File metadata
- Download URL: virtualshell-1.0.2-cp38-cp38-win_amd64.whl
- Upload date:
- Size: 190.2 kB
- Tags: CPython 3.8, Windows x86-64
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.1.0 CPython/3.13.7
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
5bae843599a316b3d8fac3f77287db01d1bfd449272a22e389fd97f54523fa83
|
|
| MD5 |
94fb3e8fc7dec85731fd1d0d5fde63ca
|
|
| BLAKE2b-256 |
21ae97271ba72698ced64fc21fa25cd2cb9e5a55a8cb2352aa829f8ebd22e77e
|
File details
Details for the file virtualshell-1.0.2-cp38-cp38-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl.
File metadata
- Download URL: virtualshell-1.0.2-cp38-cp38-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl
- Upload date:
- Size: 283.4 kB
- Tags: CPython 3.8, manylinux: glibc 2.27+ x86-64, manylinux: glibc 2.28+ x86-64
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.1.0 CPython/3.13.7
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
d780a9f12389f7884a97e1e31f1d933f5a0f8bc7a2ecf56bf3ef74fe007405f6
|
|
| MD5 |
2d1e0ed9a5b2d4e139219a787c57e55f
|
|
| BLAKE2b-256 |
b0e74930b01a81a6744fdde6293143e8cca8e648719407e8a90c106107bafa96
|
File details
Details for the file virtualshell-1.0.2-cp38-cp38-manylinux_2_26_aarch64.manylinux_2_28_aarch64.whl.
File metadata
- Download URL: virtualshell-1.0.2-cp38-cp38-manylinux_2_26_aarch64.manylinux_2_28_aarch64.whl
- Upload date:
- Size: 255.6 kB
- Tags: CPython 3.8, manylinux: glibc 2.26+ ARM64, manylinux: glibc 2.28+ ARM64
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.1.0 CPython/3.13.7
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
e05faa49bdfd3429b1bef276e9890efbd269f37870ff02e540a6c1322b89a908
|
|
| MD5 |
c0e9c28568c81e38d17c9e62222247da
|
|
| BLAKE2b-256 |
d6fae91674ed6b4694ac95137dc179ccba37c9ce037b9cb4bb750745636d1dcc
|
File details
Details for the file virtualshell-1.0.2-cp38-cp38-macosx_11_0_universal2.whl.
File metadata
- Download URL: virtualshell-1.0.2-cp38-cp38-macosx_11_0_universal2.whl
- Upload date:
- Size: 327.6 kB
- Tags: CPython 3.8, macOS 11.0+ universal2 (ARM64, x86-64)
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.1.0 CPython/3.13.7
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
505a9a2a75853d2507634dacd469535af6d46fa8d3b86db48be2bd768fb6c101
|
|
| MD5 |
c262b5a6939e1cb7ba6b7240d3c1a985
|
|
| BLAKE2b-256 |
cf2bb000b6fa5ba0282d0eb1269a0b2f716f6b0fc2b69316fd819be4e671bb67
|