gwz-py
gwz-py provides Python bindings to gwz-core and a Python implementation of
the GWZ (Git Workspace Zone) CLI. The CLI keeps the bindings exercised through
real user-facing workflows, helping ensure that Python applications can rely on
the workspace operations exposed by the message-driven core engine.
The gwz-py CLI is intended to be functional and follows the same command
model. For general terminal use, the Rust gwz
CLI is the primary and more thoroughly tested implementation. Use gwz-py when
Python API integration or a Python-distributed CLI is the requirement.
Both the Python API and CLI call the native gwz-core extension; the package
does not shell out to or bundle the Rust gwz executable. The current package
uses an in-process bridge, while the typed message boundary is designed to also
support a separately hosted core through a remote adapter.
Install
python -m pip install gwz
The distribution installs the gwz-py command and the gwz Python package.
Python API
from pathlib import Path
from gwz import Client
async with Client(root=Path(".")) as client:
response = await client.status(combined=True)
Long-running operations such as clone, materialize, pull, and push also expose streaming forms for operation progress events.
Python CLI
gwz-py --help
gwz-py status
gwz-py diff
Workspace concepts and workflows are shared with the Rust CLI. Start with the GWZ Quick Start and use the repository lifecycle guide for create, publish, detach, attach, and identity-verification behavior.
Native Bridge And Repository Lifecycle
The asynchronous client sends generated protocol requests through the native extension. For example:
from pathlib import Path
from gwz import Client
async with Client(root=Path("/work/ws")) as client:
await client.clone_repo_member(
"git@github.com:org/shared.git",
"libs/shared",
member_id="mem_shared",
source_id="src_shared",
)
await client.detach_repo_member("mem_shared")
await client.attach_repo_member("mem_shared")
Use clone_repo_member_stream(...) when the caller needs clone progress. The
native core verifies snapshot and marker commit evidence before reactivating a
historical designation; it does not fetch missing history automatically.
Development
Install the development dependencies and run the Python tests:
python -m pip install -e ".[dev]"
python run_tests.py
Build the native extension locally:
python -m maturin develop
python -m pytest src/tests/test_native_bridge.py -q
Check or regenerate the protocol API against the sibling gwz-core checkout:
python scripts/check_protocol_drift.py
python scripts/regen_protocol.py --check
The release smoke test builds and repairs a wheel, installs it in a fresh environment, exercises the installed CLI against a workspace fixture, and checks operation events and materialized state:
python scripts/package_smoke.py
Platform And Status
Status: alpha.
CI validates macOS, Linux, and Windows. Source builds require Rust 1.95 or newer
and may need platform OpenSSL, libgit2, and SSH prerequisites when a wheel is
not available. Windows source builds can provide those dependencies through
vcpkg with VCPKG_ROOT set.
If gwz._gwz_core is missing in a development checkout, run
python -m maturin develop from this directory.
License
gwz-py is licensed under GPL-2.0-only.
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 gwz-0.10.5.tar.gz.
File metadata
- Download URL: gwz-0.10.5.tar.gz
- Upload date:
- Size: 173.1 kB
- Tags: Source
- Uploaded using Trusted Publishing? Yes
- Uploaded via:
twine/7.0.0 CPython/3.13.14
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
60177fe012cab701df14296c317f3a136d4f25e095a40308c1c5d842097b94c5
|
|
| MD5 |
f75adb77bf82d5420dbb3e01c46ae8c5
|
|
| BLAKE2b-256 |
e7d8b2fb6c63b203aa53d95c4698d595b5d4c9ee3b015b3db2d2f3cc8a0084cf
|
Provenance
The following attestation bundles were made for gwz-0.10.5.tar.gz:
Publisher:
publish.yml on owebeeone/gwz-py
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
gwz-0.10.5.tar.gz -
Subject digest:
60177fe012cab701df14296c317f3a136d4f25e095a40308c1c5d842097b94c5 - Sigstore transparency entry: 2467518535
- Sigstore integration time:
-
Permalink:
owebeeone/gwz-py@0dc00ea1e674e5585e91965849fd0d84b5883e66 -
Branch / Tag:
refs/tags/v0.10.5 - Owner: https://github.com/owebeeone
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
publish.yml@0dc00ea1e674e5585e91965849fd0d84b5883e66 -
Trigger Event:
release
-
Statement type:
File details
Details for the file gwz-0.10.5-cp310-abi3-win_amd64.whl.
File metadata
- Download URL: gwz-0.10.5-cp310-abi3-win_amd64.whl
- Upload date:
- Size: 2.7 MB
- Tags: CPython 3.10+, Windows x86-64
- Uploaded using Trusted Publishing? Yes
- Uploaded via:
twine/7.0.0 CPython/3.13.14
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
7505084de51b8d718c46c812f9a5cc42bce28746293bff1155a778246be77bd6
|
|
| MD5 |
a0db1bb237c9b9cb5a3d25ad7de94fdc
|
|
| BLAKE2b-256 |
d89ce9382fcfedd90a646d256fab368ccef97cd265843f982ba350270e1ed08f
|
Provenance
The following attestation bundles were made for gwz-0.10.5-cp310-abi3-win_amd64.whl:
Publisher:
publish.yml on owebeeone/gwz-py
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
gwz-0.10.5-cp310-abi3-win_amd64.whl -
Subject digest:
7505084de51b8d718c46c812f9a5cc42bce28746293bff1155a778246be77bd6 - Sigstore transparency entry: 2467518568
- Sigstore integration time:
-
Permalink:
owebeeone/gwz-py@0dc00ea1e674e5585e91965849fd0d84b5883e66 -
Branch / Tag:
refs/tags/v0.10.5 - Owner: https://github.com/owebeeone
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
publish.yml@0dc00ea1e674e5585e91965849fd0d84b5883e66 -
Trigger Event:
release
-
Statement type:
File details
Details for the file gwz-0.10.5-cp310-abi3-manylinux_2_39_x86_64.whl.
File metadata
- Download URL: gwz-0.10.5-cp310-abi3-manylinux_2_39_x86_64.whl
- Upload date:
- Size: 5.2 MB
- Tags: CPython 3.10+, manylinux: glibc 2.39+ x86-64
- Uploaded using Trusted Publishing? Yes
- Uploaded via:
twine/7.0.0 CPython/3.13.14
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
84058020b932fc9f39ca63b1f183d7e4b718deefcbd5023370b5a9f89e16a337
|
|
| MD5 |
c765e0844b5a776eed3d2d3b93cbe297
|
|
| BLAKE2b-256 |
637d0b6f3c7e3dfa14755d15e757c88123544f1e869e417aaf0c3cd733358224
|
Provenance
The following attestation bundles were made for gwz-0.10.5-cp310-abi3-manylinux_2_39_x86_64.whl:
Publisher:
publish.yml on owebeeone/gwz-py
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
gwz-0.10.5-cp310-abi3-manylinux_2_39_x86_64.whl -
Subject digest:
84058020b932fc9f39ca63b1f183d7e4b718deefcbd5023370b5a9f89e16a337 - Sigstore transparency entry: 2467518731
- Sigstore integration time:
-
Permalink:
owebeeone/gwz-py@0dc00ea1e674e5585e91965849fd0d84b5883e66 -
Branch / Tag:
refs/tags/v0.10.5 - Owner: https://github.com/owebeeone
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
publish.yml@0dc00ea1e674e5585e91965849fd0d84b5883e66 -
Trigger Event:
release
-
Statement type:
File details
Details for the file gwz-0.10.5-cp310-abi3-manylinux_2_39_aarch64.whl.
File metadata
- Download URL: gwz-0.10.5-cp310-abi3-manylinux_2_39_aarch64.whl
- Upload date:
- Size: 5.0 MB
- Tags: CPython 3.10+, manylinux: glibc 2.39+ ARM64
- Uploaded using Trusted Publishing? Yes
- Uploaded via:
twine/7.0.0 CPython/3.13.14
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
6122aa7fd2883666c70b7b47367a8db1f0e6c51b3293fc150baf74b5a31b4b20
|
|
| MD5 |
46c40b18f4a5047bf5b74e905da51b2f
|
|
| BLAKE2b-256 |
c4d52c484b13c8881ce0e3aefb5b1ac413c0090b9e787f37a6fdcec08b84b21d
|
Provenance
The following attestation bundles were made for gwz-0.10.5-cp310-abi3-manylinux_2_39_aarch64.whl:
Publisher:
publish.yml on owebeeone/gwz-py
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
gwz-0.10.5-cp310-abi3-manylinux_2_39_aarch64.whl -
Subject digest:
6122aa7fd2883666c70b7b47367a8db1f0e6c51b3293fc150baf74b5a31b4b20 - Sigstore transparency entry: 2467518706
- Sigstore integration time:
-
Permalink:
owebeeone/gwz-py@0dc00ea1e674e5585e91965849fd0d84b5883e66 -
Branch / Tag:
refs/tags/v0.10.5 - Owner: https://github.com/owebeeone
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
publish.yml@0dc00ea1e674e5585e91965849fd0d84b5883e66 -
Trigger Event:
release
-
Statement type:
File details
Details for the file gwz-0.10.5-cp310-abi3-macosx_11_0_arm64.whl.
File metadata
- Download URL: gwz-0.10.5-cp310-abi3-macosx_11_0_arm64.whl
- Upload date:
- Size: 5.3 MB
- Tags: CPython 3.10+, macOS 11.0+ ARM64
- Uploaded using Trusted Publishing? Yes
- Uploaded via:
twine/7.0.0 CPython/3.13.14
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
1cf0c73d94ac5e0033a42b1f214f4c181a8afa7d0aef1a8046440bb2688cbde4
|
|
| MD5 |
59532ef5e59414e325c56f915296fad7
|
|
| BLAKE2b-256 |
644d301425f60e3fb10649123a9570a3580d9887c6aff88a246e5a02f6586511
|
Provenance
The following attestation bundles were made for gwz-0.10.5-cp310-abi3-macosx_11_0_arm64.whl:
Publisher:
publish.yml on owebeeone/gwz-py
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
gwz-0.10.5-cp310-abi3-macosx_11_0_arm64.whl -
Subject digest:
1cf0c73d94ac5e0033a42b1f214f4c181a8afa7d0aef1a8046440bb2688cbde4 - Sigstore transparency entry: 2467518618
- Sigstore integration time:
-
Permalink:
owebeeone/gwz-py@0dc00ea1e674e5585e91965849fd0d84b5883e66 -
Branch / Tag:
refs/tags/v0.10.5 - Owner: https://github.com/owebeeone
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
publish.yml@0dc00ea1e674e5585e91965849fd0d84b5883e66 -
Trigger Event:
release
-
Statement type:
File details
Details for the file gwz-0.10.5-cp310-abi3-macosx_10_12_x86_64.whl.
File metadata
- Download URL: gwz-0.10.5-cp310-abi3-macosx_10_12_x86_64.whl
- Upload date:
- Size: 5.1 MB
- Tags: CPython 3.10+, macOS 10.12+ x86-64
- Uploaded using Trusted Publishing? Yes
- Uploaded via:
twine/7.0.0 CPython/3.13.14
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
141450176cbf6fed5a075dd6a041671a5ce95aa127551ccdbe65a82b1ac22e53
|
|
| MD5 |
ceecec34e65a4fa2c6aedd6479fd7809
|
|
| BLAKE2b-256 |
6559aada54761d19500fc0bea018ed0de67f0193ae3540479398e75262951d11
|
Provenance
The following attestation bundles were made for gwz-0.10.5-cp310-abi3-macosx_10_12_x86_64.whl:
Publisher:
publish.yml on owebeeone/gwz-py
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
gwz-0.10.5-cp310-abi3-macosx_10_12_x86_64.whl -
Subject digest:
141450176cbf6fed5a075dd6a041671a5ce95aa127551ccdbe65a82b1ac22e53 - Sigstore transparency entry: 2467518664
- Sigstore integration time:
-
Permalink:
owebeeone/gwz-py@0dc00ea1e674e5585e91965849fd0d84b5883e66 -
Branch / Tag:
refs/tags/v0.10.5 - Owner: https://github.com/owebeeone
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
publish.yml@0dc00ea1e674e5585e91965849fd0d84b5883e66 -
Trigger Event:
release
-
Statement type: