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.3.tar.gz (170.6 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.3-cp310-abi3-win_amd64.whl (2.6 MB view details)

Uploaded CPython 3.10+Windows x86-64

gwz-0.10.3-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.3-cp310-abi3-manylinux_2_39_aarch64.whl (4.8 MB view details)

Uploaded CPython 3.10+manylinux: glibc 2.39+ ARM64

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

Uploaded CPython 3.10+macOS 11.0+ ARM64

gwz-0.10.3-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.3.tar.gz.

File metadata

  • Download URL: gwz-0.10.3.tar.gz
  • Upload date:
  • Size: 170.6 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.3.tar.gz
Algorithm Hash digest
SHA256 3c3b6cfdae3f0365b011784c2c7546b1ea5332238d4110d30752546c9c42595e
MD5 62a9176c59b98a7dd587c19410309933
BLAKE2b-256 96746ea84566dab6b9948322b4b2253e2aca6efc8894ccd3ddcc8f7f799949d9

See more details on using hashes here.

Provenance

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

File metadata

  • Download URL: gwz-0.10.3-cp310-abi3-win_amd64.whl
  • Upload date:
  • Size: 2.6 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.3-cp310-abi3-win_amd64.whl
Algorithm Hash digest
SHA256 22648adca7c34d00ff3f1583ae37cdb42d180bd456d6a0e4605bfbb99bf63c3c
MD5 c4528aaa23716ce67a737ec0a66a8f65
BLAKE2b-256 bae4e0f270462e9733def621a8a3138ff6eeab1112ae4ef09d80cd66eede0e53

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for gwz-0.10.3-cp310-abi3-manylinux_2_39_x86_64.whl
Algorithm Hash digest
SHA256 b6bc1e30b01246ddf5975e9abff5b2b86c3e0d2a6c9c29118f8619092c92d13c
MD5 26e391fd6e55102f848319d64a4a6ff2
BLAKE2b-256 0dba5b4e3f9d8eaf38e7a26f5526303ea2b8716ce890faa95b2f589830a7ed5d

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for gwz-0.10.3-cp310-abi3-manylinux_2_39_aarch64.whl
Algorithm Hash digest
SHA256 7d785e296ba02d6dd07e2ca38c30efb4183aaaf79c6190a5a4450d767a384f16
MD5 ece50f2a57c1af01da7609f6a15aa33a
BLAKE2b-256 52f5d4a16ec952bc8484a2ce23f87eb8c28f4c5c9b4130736f7a8e17e6907ddc

See more details on using hashes here.

Provenance

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

File metadata

  • Download URL: gwz-0.10.3-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/7.0.0 CPython/3.13.14

File hashes

Hashes for gwz-0.10.3-cp310-abi3-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 bb68140b77113ca40af6e531a1b592c79194423664d937f76f40841519d7cf23
MD5 796b248d630105627a64ea9783edb1e5
BLAKE2b-256 dab3f9a98903c03663663b0bfc58515f5803b3401a90d6d37609422fabf2f287

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for gwz-0.10.3-cp310-abi3-macosx_10_12_x86_64.whl
Algorithm Hash digest
SHA256 753e0702e5bc022f83a9a28b657d3ab49f5773aa5fcb8a3fae8fd44f4e8d8d16
MD5 b9b4b9b93fb84e34063423a4bfbfcf93
BLAKE2b-256 071373a823dd1855245b0fce38ddb7ff62ec7af7df57c788d912ab85d7d4bcc1

See more details on using hashes here.

Provenance

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

This release

0.10.3 This release

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