Skip to main content

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

gwz-0.7.4.tar.gz (101.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.7.4-cp310-abi3-win_amd64.whl (1.7 MB view details)

Uploaded CPython 3.10+Windows x86-64

gwz-0.7.4-cp310-abi3-manylinux_2_39_x86_64.whl (4.3 MB view details)

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

gwz-0.7.4-cp310-abi3-manylinux_2_39_aarch64.whl (4.0 MB view details)

Uploaded CPython 3.10+manylinux: glibc 2.39+ ARM64

gwz-0.7.4-cp310-abi3-macosx_11_0_arm64.whl (4.4 MB view details)

Uploaded CPython 3.10+macOS 11.0+ ARM64

gwz-0.7.4-cp310-abi3-macosx_10_12_x86_64.whl (4.2 MB view details)

Uploaded CPython 3.10+macOS 10.12+ x86-64

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

Hashes for gwz-0.7.4.tar.gz
Algorithm Hash digest
SHA256 cb7de5cd0ab02cd80a52a76e943bcf61c79b130d8cabfc4c2cb52d25d006e0d3
MD5 10febf29d430e7347af0d8865f78d252
BLAKE2b-256 32b733104dcaa3d9b82bfe9134a2f9bd3f5f0addcd6cb9e1f9345b5238a0582a

See more details on using hashes here.

Provenance

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

Hashes for gwz-0.7.4-cp310-abi3-win_amd64.whl
Algorithm Hash digest
SHA256 8b00a62f45e97400082c5449af8f0502263a58171370479fbb9c89ee98751bd7
MD5 cb8e0bcfe20c09b1b90d785038c82cf7
BLAKE2b-256 79eee8641e7aaa0c555ea6bfc5c0e2e41dac04df5cbe5f14ad64196fa7f094c8

See more details on using hashes here.

Provenance

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

Hashes for gwz-0.7.4-cp310-abi3-manylinux_2_39_x86_64.whl
Algorithm Hash digest
SHA256 e4ebe475a7c5d2750c93a515bc6efd6e395be160505d5fb7652e985436ad4b1a
MD5 f0d34437860f7f4a03e819b6d4cea9bd
BLAKE2b-256 71b59afc317379c7308b67e7ba459ee95f82f0c5107f1ea16ea568ca2d684115

See more details on using hashes here.

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

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.7.4-cp310-abi3-manylinux_2_39_aarch64.whl.

File metadata

File hashes

Hashes for gwz-0.7.4-cp310-abi3-manylinux_2_39_aarch64.whl
Algorithm Hash digest
SHA256 3bd66aa104d300cc4fc60ed97492c92e35c20c37dd3ad0341ff0c0346340aef1
MD5 bd9a41675be0ff7f53b665485122a7b1
BLAKE2b-256 fa3f6d95ca2f25fdbfe096367f463ffeb9b18e2cc26d03d73f7b65e548acb672

See more details on using hashes here.

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

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.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

Hashes for gwz-0.7.4-cp310-abi3-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 21d431683235044955cd0d86eabb9eedd7ec25ef8ba0fe0324b0701c85804750
MD5 7eae9cc707f07c84077dad06c5d2756c
BLAKE2b-256 c21ee88e0b0a9ab548eeaea881ec5664677740a7c2f52241ff65c0cf14bee36a

See more details on using hashes here.

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

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.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

Hashes for gwz-0.7.4-cp310-abi3-macosx_10_12_x86_64.whl
Algorithm Hash digest
SHA256 8ca97ce3f7b799b512eea15935d96714b5d3b9085d22e7747385c91ddc89ddc2
MD5 6256eb4b9421836c1e6f2d29a857ba60
BLAKE2b-256 98b9c1430017bee96f9e22d8a416dabcc5ca80058077269fa0489beb2c565367

See more details on using hashes here.

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

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

Supported by

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