Python bindings and CLI for GWZ multi-repository workspaces.
Project description
gwz-py
Python bindings and an installable gwz-py command for GWZ multi-repository
workspaces.
Status: alpha. The Python package shape, generated taut protocol API, async
client facade, CLI entry point, and native gwz-core bridge exist. The native
bridge supports request/response calls plus operation event streaming for
long-running operations such as clone, materialize, pull, and push.
Release mode: installing the PyPI distribution gwz installs the Python gwz-py CLI
(gwz.cli:main). The CLI uses the same native gwz-core extension as the
Python API; first-line PyPI wheels do not bundle or dispatch to the Rust gwz
binary.
python -m pip install gwz
python -m pip install -e ".[dev]"
python run_tests.py
Build the native extension locally with maturin:
python -m maturin develop
python -m pytest src/tests/test_native_bridge.py -q
Run the package smoke test before release-oriented changes. It builds a repaired
wheel, installs it into a fresh virtualenv, runs gwz-py --help, creates a
local workspace fixture, exercises installed gwz-py clone, verifies clone
progress events and materialized member state, then runs gwz-py status in the
clone:
python scripts/package_smoke.py
Check that the packaged protocol IR still matches the sibling gwz-core schema:
python scripts/check_protocol_drift.py
The native crate requires Rust 1.95 or newer and links the sibling
../gwz-core checkout during local development. gwz-core depends on git2
with HTTPS and SSH support, so source builds may need platform OpenSSL, libgit2,
and SSH build prerequisites when wheels are not available.
CI validates macOS, Linux, and Windows. Windows source builds use the same
native extension path as other platforms and need OpenSSL/libgit2 prerequisites
available to Cargo, for example through vcpkg with VCPKG_ROOT set.
If gwz._gwz_core is missing, pass a custom bridge in tests or run
python -m maturin develop from this directory.
Regenerate the protocol API from the sibling gwz-core checkout:
python scripts/regen_protocol.py
python scripts/regen_protocol.py --check
Example API shape:
from pathlib import Path
from gwz import Client
async with Client(root=Path(".")) as client:
response = await client.status(combined=True)
The Python API uses the gwz-core bridge. It must not shell out to the Rust
gwz executable.
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 gwz-0.7.4.tar.gz.
File metadata
- Download URL: gwz-0.7.4.tar.gz
- Upload date:
- Size: 101.8 kB
- Tags: Source
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.13.12
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
cb7de5cd0ab02cd80a52a76e943bcf61c79b130d8cabfc4c2cb52d25d006e0d3
|
|
| MD5 |
10febf29d430e7347af0d8865f78d252
|
|
| BLAKE2b-256 |
32b733104dcaa3d9b82bfe9134a2f9bd3f5f0addcd6cb9e1f9345b5238a0582a
|
Provenance
The following attestation bundles were made for gwz-0.7.4.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.7.4.tar.gz -
Subject digest:
cb7de5cd0ab02cd80a52a76e943bcf61c79b130d8cabfc4c2cb52d25d006e0d3 - Sigstore transparency entry: 1984253090
- Sigstore integration time:
-
Permalink:
owebeeone/gwz-py@8aabb8f56ebabd9fe679d129b78043ae07f430ca -
Branch / Tag:
refs/tags/v0.7.4 - Owner: https://github.com/owebeeone
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
publish.yml@8aabb8f56ebabd9fe679d129b78043ae07f430ca -
Trigger Event:
release
-
Statement type:
File details
Details for the file gwz-0.7.4-cp310-abi3-win_amd64.whl.
File metadata
- Download URL: gwz-0.7.4-cp310-abi3-win_amd64.whl
- Upload date:
- Size: 1.7 MB
- Tags: CPython 3.10+, Windows x86-64
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.13.12
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
8b00a62f45e97400082c5449af8f0502263a58171370479fbb9c89ee98751bd7
|
|
| MD5 |
cb8e0bcfe20c09b1b90d785038c82cf7
|
|
| BLAKE2b-256 |
79eee8641e7aaa0c555ea6bfc5c0e2e41dac04df5cbe5f14ad64196fa7f094c8
|
Provenance
The following attestation bundles were made for gwz-0.7.4-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.7.4-cp310-abi3-win_amd64.whl -
Subject digest:
8b00a62f45e97400082c5449af8f0502263a58171370479fbb9c89ee98751bd7 - Sigstore transparency entry: 1984253331
- Sigstore integration time:
-
Permalink:
owebeeone/gwz-py@8aabb8f56ebabd9fe679d129b78043ae07f430ca -
Branch / Tag:
refs/tags/v0.7.4 - Owner: https://github.com/owebeeone
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
publish.yml@8aabb8f56ebabd9fe679d129b78043ae07f430ca -
Trigger Event:
release
-
Statement type:
File details
Details for the file gwz-0.7.4-cp310-abi3-manylinux_2_39_x86_64.whl.
File metadata
- Download URL: gwz-0.7.4-cp310-abi3-manylinux_2_39_x86_64.whl
- Upload date:
- Size: 4.3 MB
- Tags: CPython 3.10+, manylinux: glibc 2.39+ x86-64
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.13.12
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
e4ebe475a7c5d2750c93a515bc6efd6e395be160505d5fb7652e985436ad4b1a
|
|
| MD5 |
f0d34437860f7f4a03e819b6d4cea9bd
|
|
| BLAKE2b-256 |
71b59afc317379c7308b67e7ba459ee95f82f0c5107f1ea16ea568ca2d684115
|
Provenance
The following attestation bundles were made for gwz-0.7.4-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.7.4-cp310-abi3-manylinux_2_39_x86_64.whl -
Subject digest:
e4ebe475a7c5d2750c93a515bc6efd6e395be160505d5fb7652e985436ad4b1a - Sigstore transparency entry: 1984253266
- Sigstore integration time:
-
Permalink:
owebeeone/gwz-py@8aabb8f56ebabd9fe679d129b78043ae07f430ca -
Branch / Tag:
refs/tags/v0.7.4 - Owner: https://github.com/owebeeone
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
publish.yml@8aabb8f56ebabd9fe679d129b78043ae07f430ca -
Trigger Event:
release
-
Statement type:
File details
Details for the file gwz-0.7.4-cp310-abi3-manylinux_2_39_aarch64.whl.
File metadata
- Download URL: gwz-0.7.4-cp310-abi3-manylinux_2_39_aarch64.whl
- Upload date:
- Size: 4.0 MB
- Tags: CPython 3.10+, manylinux: glibc 2.39+ ARM64
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.13.12
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
3bd66aa104d300cc4fc60ed97492c92e35c20c37dd3ad0341ff0c0346340aef1
|
|
| MD5 |
bd9a41675be0ff7f53b665485122a7b1
|
|
| BLAKE2b-256 |
fa3f6d95ca2f25fdbfe096367f463ffeb9b18e2cc26d03d73f7b65e548acb672
|
Provenance
The following attestation bundles were made for gwz-0.7.4-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.7.4-cp310-abi3-manylinux_2_39_aarch64.whl -
Subject digest:
3bd66aa104d300cc4fc60ed97492c92e35c20c37dd3ad0341ff0c0346340aef1 - Sigstore transparency entry: 1984253197
- Sigstore integration time:
-
Permalink:
owebeeone/gwz-py@8aabb8f56ebabd9fe679d129b78043ae07f430ca -
Branch / Tag:
refs/tags/v0.7.4 - Owner: https://github.com/owebeeone
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
publish.yml@8aabb8f56ebabd9fe679d129b78043ae07f430ca -
Trigger Event:
release
-
Statement type:
File details
Details for the file gwz-0.7.4-cp310-abi3-macosx_11_0_arm64.whl.
File metadata
- Download URL: gwz-0.7.4-cp310-abi3-macosx_11_0_arm64.whl
- Upload date:
- Size: 4.4 MB
- Tags: CPython 3.10+, macOS 11.0+ ARM64
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.13.12
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
21d431683235044955cd0d86eabb9eedd7ec25ef8ba0fe0324b0701c85804750
|
|
| MD5 |
7eae9cc707f07c84077dad06c5d2756c
|
|
| BLAKE2b-256 |
c21ee88e0b0a9ab548eeaea881ec5664677740a7c2f52241ff65c0cf14bee36a
|
Provenance
The following attestation bundles were made for gwz-0.7.4-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.7.4-cp310-abi3-macosx_11_0_arm64.whl -
Subject digest:
21d431683235044955cd0d86eabb9eedd7ec25ef8ba0fe0324b0701c85804750 - Sigstore transparency entry: 1984253402
- Sigstore integration time:
-
Permalink:
owebeeone/gwz-py@8aabb8f56ebabd9fe679d129b78043ae07f430ca -
Branch / Tag:
refs/tags/v0.7.4 - Owner: https://github.com/owebeeone
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
publish.yml@8aabb8f56ebabd9fe679d129b78043ae07f430ca -
Trigger Event:
release
-
Statement type:
File details
Details for the file gwz-0.7.4-cp310-abi3-macosx_10_12_x86_64.whl.
File metadata
- Download URL: gwz-0.7.4-cp310-abi3-macosx_10_12_x86_64.whl
- Upload date:
- Size: 4.2 MB
- Tags: CPython 3.10+, macOS 10.12+ x86-64
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.13.12
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
8ca97ce3f7b799b512eea15935d96714b5d3b9085d22e7747385c91ddc89ddc2
|
|
| MD5 |
6256eb4b9421836c1e6f2d29a857ba60
|
|
| BLAKE2b-256 |
98b9c1430017bee96f9e22d8a416dabcc5ca80058077269fa0489beb2c565367
|
Provenance
The following attestation bundles were made for gwz-0.7.4-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.7.4-cp310-abi3-macosx_10_12_x86_64.whl -
Subject digest:
8ca97ce3f7b799b512eea15935d96714b5d3b9085d22e7747385c91ddc89ddc2 - Sigstore transparency entry: 1984253150
- Sigstore integration time:
-
Permalink:
owebeeone/gwz-py@8aabb8f56ebabd9fe679d129b78043ae07f430ca -
Branch / Tag:
refs/tags/v0.7.4 - Owner: https://github.com/owebeeone
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
publish.yml@8aabb8f56ebabd9fe679d129b78043ae07f430ca -
Trigger Event:
release
-
Statement type: