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.5.tar.gz (107.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.7.5-cp310-abi3-win_amd64.whl (1.7 MB view details)

Uploaded CPython 3.10+Windows x86-64

gwz-0.7.5-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.5-cp310-abi3-manylinux_2_39_aarch64.whl (4.0 MB view details)

Uploaded CPython 3.10+manylinux: glibc 2.39+ ARM64

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

Uploaded CPython 3.10+macOS 11.0+ ARM64

gwz-0.7.5-cp310-abi3-macosx_10_12_x86_64.whl (4.3 MB view details)

Uploaded CPython 3.10+macOS 10.12+ x86-64

File details

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

File metadata

  • Download URL: gwz-0.7.5.tar.gz
  • Upload date:
  • Size: 107.1 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.5.tar.gz
Algorithm Hash digest
SHA256 8af5e30dd4be29cdf732220733833da9418a5f7da46d01e16f2cac55bd31287d
MD5 168abf2cde91897424bf48a93706ba0f
BLAKE2b-256 70c620857e91b256ff84e497972baef76b4aca7397c57ef5f576fc5c19e79598

See more details on using hashes here.

Provenance

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

File metadata

  • Download URL: gwz-0.7.5-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.5-cp310-abi3-win_amd64.whl
Algorithm Hash digest
SHA256 b3b710e3514ce9cef0b0cb35dccc5b79d68cb4e8ba02b1a70b721f23ee14774a
MD5 52070f3717f16597904dec50c7f95965
BLAKE2b-256 357384f7ad62c9503249f4848b5a2c85ec39b65a5aa805fbd37d41e33ee3e158

See more details on using hashes here.

Provenance

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

File metadata

  • Download URL: gwz-0.7.5-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.5-cp310-abi3-manylinux_2_39_x86_64.whl
Algorithm Hash digest
SHA256 6994c55ef3c3f842f884a289d812731d54284136586f7724834b26b2776a9218
MD5 41185044a3e78f9e47f7d4f2daf27730
BLAKE2b-256 41c465c454d7bdad18ed8b65f0e0c3ee201ec1e8460b8ce2ea310ed5dc1eccae

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for gwz-0.7.5-cp310-abi3-manylinux_2_39_aarch64.whl
Algorithm Hash digest
SHA256 0bc29a63f4e4640cf78236483ab871d562ddb70e29b77ec748a90025daeec2a2
MD5 ce53fc6a4c26eba0bcb544ed39dd2f51
BLAKE2b-256 6f6f19575faffa96436edf7cae8671385204a696983531fcebd3f9c3d0e1b50f

See more details on using hashes here.

Provenance

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

File metadata

  • Download URL: gwz-0.7.5-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.5-cp310-abi3-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 aa0fbca6d1bdf11d9061889f4992c706425be39de30ff03eb6e55559871ed07e
MD5 65a4a66e2c36f7b74587f76ecd1b3c5a
BLAKE2b-256 9b3a16d593eec07149aa6316d9301a0b8fdec7d5d95bb3fbd13cc7b6d90681b4

See more details on using hashes here.

Provenance

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

File metadata

  • Download URL: gwz-0.7.5-cp310-abi3-macosx_10_12_x86_64.whl
  • Upload date:
  • Size: 4.3 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.5-cp310-abi3-macosx_10_12_x86_64.whl
Algorithm Hash digest
SHA256 8f3cf3830485f2e5258f15ad20246c70a2e858f4ee8b00b1c472cf0de836fee7
MD5 955fde857fa997defd731c4dd7bb335e
BLAKE2b-256 7bf3be252c0e0b336f097eea16fdff3aedd7602af0e224109db93b5c0d7e59b9

See more details on using hashes here.

Provenance

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

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