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.2.tar.gz (170.3 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.2-cp310-abi3-win_amd64.whl (2.5 MB view details)

Uploaded CPython 3.10+Windows x86-64

gwz-0.10.2-cp310-abi3-manylinux_2_39_x86_64.whl (5.1 MB view details)

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

gwz-0.10.2-cp310-abi3-manylinux_2_39_aarch64.whl (4.8 MB view details)

Uploaded CPython 3.10+manylinux: glibc 2.39+ ARM64

gwz-0.10.2-cp310-abi3-macosx_11_0_arm64.whl (5.2 MB view details)

Uploaded CPython 3.10+macOS 11.0+ ARM64

gwz-0.10.2-cp310-abi3-macosx_10_12_x86_64.whl (5.0 MB view details)

Uploaded CPython 3.10+macOS 10.12+ x86-64

File details

Details for the file gwz-0.10.2.tar.gz.

File metadata

  • Download URL: gwz-0.10.2.tar.gz
  • Upload date:
  • Size: 170.3 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.14

File hashes

Hashes for gwz-0.10.2.tar.gz
Algorithm Hash digest
SHA256 b9b488bc365ff62e35f77c2292270608fa1e94bdcde453d1ffb16efbd806cbfd
MD5 61abe6e816d1a9eacf103517012e85c6
BLAKE2b-256 a938aa47a5f169e7ca98d87b4817b0a9d0c169aab2d85b9144bba8ee68a38b3d

See more details on using hashes here.

Provenance

The following attestation bundles were made for gwz-0.10.2.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.2-cp310-abi3-win_amd64.whl.

File metadata

  • Download URL: gwz-0.10.2-cp310-abi3-win_amd64.whl
  • Upload date:
  • Size: 2.5 MB
  • Tags: CPython 3.10+, Windows x86-64
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.14

File hashes

Hashes for gwz-0.10.2-cp310-abi3-win_amd64.whl
Algorithm Hash digest
SHA256 95befd7abab04a10e4cd349dd064dc3c82e93c64177da27653449c23a0f5b758
MD5 886b29eb06bb000e3c0c9d24ee294314
BLAKE2b-256 8d8fc7c23f2ad3b3f6358f7a64ae6ebc1b4d3311c525ffd563e178799adefa76

See more details on using hashes here.

Provenance

The following attestation bundles were made for gwz-0.10.2-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.2-cp310-abi3-manylinux_2_39_x86_64.whl.

File metadata

File hashes

Hashes for gwz-0.10.2-cp310-abi3-manylinux_2_39_x86_64.whl
Algorithm Hash digest
SHA256 8a879f36eee53ac43a102a23ce823752c311cc022c4a26fabb27188a3c89b616
MD5 2bd4abcf8dac8a5547a708ccf519abd2
BLAKE2b-256 2269c03b6216f9e4d798e3fe3a3066ff2bc6518ad53afed188bd46a5455a4776

See more details on using hashes here.

Provenance

The following attestation bundles were made for gwz-0.10.2-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.2-cp310-abi3-manylinux_2_39_aarch64.whl.

File metadata

File hashes

Hashes for gwz-0.10.2-cp310-abi3-manylinux_2_39_aarch64.whl
Algorithm Hash digest
SHA256 2c2616c5e67bddaa45dc6bb61f26da34562ad9e71cf7deca1741bc28544b9c77
MD5 b2690455ec147240b9bc2349d431c24c
BLAKE2b-256 d880da43bcf59f18c90db7738478eb5270a38d237113d10bab961a2f77579ca3

See more details on using hashes here.

Provenance

The following attestation bundles were made for gwz-0.10.2-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.2-cp310-abi3-macosx_11_0_arm64.whl.

File metadata

  • Download URL: gwz-0.10.2-cp310-abi3-macosx_11_0_arm64.whl
  • Upload date:
  • Size: 5.2 MB
  • Tags: CPython 3.10+, macOS 11.0+ ARM64
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.14

File hashes

Hashes for gwz-0.10.2-cp310-abi3-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 d769fa21ca0cf512de34eb9c65ebc5f210f104dc57df13efeb2778e582bddc18
MD5 4f30b2f533464e2c8b36cf567f18ec29
BLAKE2b-256 1613a0bb994fff36fd1895a4dc47fd972098d992805f62011b3d4b090b110ede

See more details on using hashes here.

Provenance

The following attestation bundles were made for gwz-0.10.2-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.2-cp310-abi3-macosx_10_12_x86_64.whl.

File metadata

File hashes

Hashes for gwz-0.10.2-cp310-abi3-macosx_10_12_x86_64.whl
Algorithm Hash digest
SHA256 738d5f035de1ddea75819cfd1e68d3ce7d891bfa0007cc29f8132187a5288220
MD5 034d3ca3a02d8f965a87ccd6f4966b4f
BLAKE2b-256 59a3e1867775ca09d6b0f47f87a3eb6e7d99904309b1cd26393e6f17d15fc1a6

See more details on using hashes here.

Provenance

The following attestation bundles were made for gwz-0.10.2-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

0.10.5

6 files

0.10.3

6 files

This release

0.10.2 This release

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