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.9.2.tar.gz (143.8 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.9.2-cp310-abi3-win_amd64.whl (1.9 MB view details)

Uploaded CPython 3.10+Windows x86-64

gwz-0.9.2-cp310-abi3-manylinux_2_39_x86_64.whl (4.5 MB view details)

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

gwz-0.9.2-cp310-abi3-manylinux_2_39_aarch64.whl (4.2 MB view details)

Uploaded CPython 3.10+manylinux: glibc 2.39+ ARM64

gwz-0.9.2-cp310-abi3-macosx_11_0_arm64.whl (4.6 MB view details)

Uploaded CPython 3.10+macOS 11.0+ ARM64

gwz-0.9.2-cp310-abi3-macosx_10_12_x86_64.whl (4.5 MB view details)

Uploaded CPython 3.10+macOS 10.12+ x86-64

File details

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

File metadata

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

File hashes

Hashes for gwz-0.9.2.tar.gz
Algorithm Hash digest
SHA256 7ede548d532d5980580dcf04029dd4c8906c4a36333ed263bf25e90c0901adf3
MD5 c31e77280f7fec24360f63643196045c
BLAKE2b-256 6838e2ea24d8ce94f5309c958d3eeaa57d745496909f4df2e9ad882178164c83

See more details on using hashes here.

Provenance

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

File metadata

  • Download URL: gwz-0.9.2-cp310-abi3-win_amd64.whl
  • Upload date:
  • Size: 1.9 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

Hashes for gwz-0.9.2-cp310-abi3-win_amd64.whl
Algorithm Hash digest
SHA256 200a5f732cffc91c4adaab0683202aaac4cf06f6375d25630ee7bea847829b50
MD5 1972434651bd8ffca2d81f6e77bfdaa8
BLAKE2b-256 b6e6db4ee396d828d70a8d89a637955e3faf3bd322271906beb57cd63e98d320

See more details on using hashes here.

Provenance

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

File metadata

  • Download URL: gwz-0.9.2-cp310-abi3-manylinux_2_39_x86_64.whl
  • Upload date:
  • Size: 4.5 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

Hashes for gwz-0.9.2-cp310-abi3-manylinux_2_39_x86_64.whl
Algorithm Hash digest
SHA256 b90dd4869825f7f00baf1ffd104435469fb582748ebeafb15dc77050bd401900
MD5 3f97e431b8fd017df81785916eb52517
BLAKE2b-256 82178ab0bf7633ba8623e54042a46b5c024fc8279f9c7701e0abeb4152bbcf2d

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for gwz-0.9.2-cp310-abi3-manylinux_2_39_aarch64.whl
Algorithm Hash digest
SHA256 fbc6b0a2d9cd8f524ab5c4d8b6232c8664047b51d41e13c120e5754f07b02aba
MD5 64afcfb97a34ebfb4ec5dd2b09a91654
BLAKE2b-256 d96131c02393dead1cc3a644c6d51c701b8cfd83f7af1cf877e96a79ff92c0ee

See more details on using hashes here.

Provenance

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

File metadata

  • Download URL: gwz-0.9.2-cp310-abi3-macosx_11_0_arm64.whl
  • Upload date:
  • Size: 4.6 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

Hashes for gwz-0.9.2-cp310-abi3-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 7a933c9044d306c4ae7cd6327d8dc4bf378250bae14ab98e44557ddae3ee871a
MD5 c2e1d28743866f135a87eb0102fc9018
BLAKE2b-256 d285cdc967393bed9a3abe9cdea7bfd1338b7f4d3bfdf2904c17474012a39865

See more details on using hashes here.

Provenance

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

File metadata

  • Download URL: gwz-0.9.2-cp310-abi3-macosx_10_12_x86_64.whl
  • Upload date:
  • Size: 4.5 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

Hashes for gwz-0.9.2-cp310-abi3-macosx_10_12_x86_64.whl
Algorithm Hash digest
SHA256 ae9f7e260319ae0834cb79ba4918b7ca672e8537811b3e5570c3bad5992a13a5
MD5 10bbf8dca0843df786773c17cc27cfd4
BLAKE2b-256 17f8217d1faa4017621abe95cb70845dc89e2e36e46fa7216e9309b16436bcb0

See more details on using hashes here.

Provenance

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

0.10.2

6 files

This release

0.9.2 This release

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