Skip to main content

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

gwz-0.10.5.tar.gz (173.1 kB view details)

Uploaded Source

Built Distributions

If you're not sure about the file name format, learn more about wheel file names.

gwz-0.10.5-cp310-abi3-win_amd64.whl (2.7 MB view details)

Uploaded CPython 3.10+Windows x86-64

gwz-0.10.5-cp310-abi3-manylinux_2_39_x86_64.whl (5.2 MB view details)

Uploaded CPython 3.10+manylinux: glibc 2.39+ x86-64

gwz-0.10.5-cp310-abi3-manylinux_2_39_aarch64.whl (5.0 MB view details)

Uploaded CPython 3.10+manylinux: glibc 2.39+ ARM64

gwz-0.10.5-cp310-abi3-macosx_11_0_arm64.whl (5.3 MB view details)

Uploaded CPython 3.10+macOS 11.0+ ARM64

gwz-0.10.5-cp310-abi3-macosx_10_12_x86_64.whl (5.1 MB view details)

Uploaded CPython 3.10+macOS 10.12+ x86-64

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

Hashes for gwz-0.10.5.tar.gz
Algorithm Hash digest
SHA256 60177fe012cab701df14296c317f3a136d4f25e095a40308c1c5d842097b94c5
MD5 f75adb77bf82d5420dbb3e01c46ae8c5
BLAKE2b-256 e7d8b2fb6c63b203aa53d95c4698d595b5d4c9ee3b015b3db2d2f3cc8a0084cf

See more details on using hashes here.

Provenance

The following attestation bundles were made for gwz-0.10.5.tar.gz:

Publisher: publish.yml on owebeeone/gwz-py

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

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

Hashes for gwz-0.10.5-cp310-abi3-win_amd64.whl
Algorithm Hash digest
SHA256 7505084de51b8d718c46c812f9a5cc42bce28746293bff1155a778246be77bd6
MD5 a0db1bb237c9b9cb5a3d25ad7de94fdc
BLAKE2b-256 d89ce9382fcfedd90a646d256fab368ccef97cd265843f982ba350270e1ed08f

See more details on using hashes here.

Provenance

The following attestation bundles were made for gwz-0.10.5-cp310-abi3-win_amd64.whl:

Publisher: publish.yml on owebeeone/gwz-py

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file gwz-0.10.5-cp310-abi3-manylinux_2_39_x86_64.whl.

File metadata

File hashes

Hashes for gwz-0.10.5-cp310-abi3-manylinux_2_39_x86_64.whl
Algorithm Hash digest
SHA256 84058020b932fc9f39ca63b1f183d7e4b718deefcbd5023370b5a9f89e16a337
MD5 c765e0844b5a776eed3d2d3b93cbe297
BLAKE2b-256 637d0b6f3c7e3dfa14755d15e757c88123544f1e869e417aaf0c3cd733358224

See more details on using hashes here.

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

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file gwz-0.10.5-cp310-abi3-manylinux_2_39_aarch64.whl.

File metadata

File hashes

Hashes for gwz-0.10.5-cp310-abi3-manylinux_2_39_aarch64.whl
Algorithm Hash digest
SHA256 6122aa7fd2883666c70b7b47367a8db1f0e6c51b3293fc150baf74b5a31b4b20
MD5 46c40b18f4a5047bf5b74e905da51b2f
BLAKE2b-256 c4d52c484b13c8881ce0e3aefb5b1ac413c0090b9e787f37a6fdcec08b84b21d

See more details on using hashes here.

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

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

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

Hashes for gwz-0.10.5-cp310-abi3-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 1cf0c73d94ac5e0033a42b1f214f4c181a8afa7d0aef1a8046440bb2688cbde4
MD5 59532ef5e59414e325c56f915296fad7
BLAKE2b-256 644d301425f60e3fb10649123a9570a3580d9887c6aff88a246e5a02f6586511

See more details on using hashes here.

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

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file gwz-0.10.5-cp310-abi3-macosx_10_12_x86_64.whl.

File metadata

File hashes

Hashes for gwz-0.10.5-cp310-abi3-macosx_10_12_x86_64.whl
Algorithm Hash digest
SHA256 141450176cbf6fed5a075dd6a041671a5ce95aa127551ccdbe65a82b1ac22e53
MD5 ceecec34e65a4fa2c6aedd6479fd7809
BLAKE2b-256 6559aada54761d19500fc0bea018ed0de67f0193ae3540479398e75262951d11

See more details on using hashes here.

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

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

Release history Release notifications | RSS feed

This release

0.10.5 This release

6 files

0.10.3

6 files

0.10.2

6 files

0.9.2

6 files

0.9.1

6 files

0.9.0

6 files

0.8.2

6 files

0.8.1

6 files

0.7.5

6 files

0.7.4

6 files

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page