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

Uploaded CPython 3.10+Windows x86-64

gwz-0.8.2-cp310-abi3-manylinux_2_39_x86_64.whl (4.4 MB view details)

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

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

Uploaded CPython 3.10+manylinux: glibc 2.39+ ARM64

gwz-0.8.2-cp310-abi3-macosx_11_0_arm64.whl (4.5 MB view details)

Uploaded CPython 3.10+macOS 11.0+ ARM64

gwz-0.8.2-cp310-abi3-macosx_10_12_x86_64.whl (4.4 MB view details)

Uploaded CPython 3.10+macOS 10.12+ x86-64

File details

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

File metadata

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

File hashes

Hashes for gwz-0.8.2.tar.gz
Algorithm Hash digest
SHA256 30ee4cd0b8ca73c592eff84ec0411f5cc8e3cb045b6650012465385032ce212e
MD5 ade535b4d0f664940f4e5ac10c1a13d0
BLAKE2b-256 da731195871ae1d42ce23a1c5843b554464ac881afe2433a98424a4fbee7e58c

See more details on using hashes here.

Provenance

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

File metadata

  • Download URL: gwz-0.8.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.8.2-cp310-abi3-win_amd64.whl
Algorithm Hash digest
SHA256 94b7b361182a299468674570d92ffebda8644da7ed4b058b40f750787242706c
MD5 eec40efdf784ceba30884d9474eec59f
BLAKE2b-256 5de61357ef55b77d436c4d9b6ebe10a8030698aa526a69e876739de792ced400

See more details on using hashes here.

Provenance

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

File metadata

  • Download URL: gwz-0.8.2-cp310-abi3-manylinux_2_39_x86_64.whl
  • Upload date:
  • Size: 4.4 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.8.2-cp310-abi3-manylinux_2_39_x86_64.whl
Algorithm Hash digest
SHA256 0c8c5edcb63dcd9587f5a8d8397b438d4889010eefecf63d41a26e8c3e79651e
MD5 a0a33114e15d9317058385770418b1fb
BLAKE2b-256 ec0fbb425c3d7c0d27f312645d95965398381b2a5ee18f880248a81007fa0c22

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for gwz-0.8.2-cp310-abi3-manylinux_2_39_aarch64.whl
Algorithm Hash digest
SHA256 66a4ac2b381252dcb8d7db78dff1499ca4601eb2401fe8f66ae4154504361ea0
MD5 9de05f05d7aabab203abccd6fa926968
BLAKE2b-256 ae0671ebaef01aa831a6219f57c0369aa9c9b57098628fdb82374c18a0b399c7

See more details on using hashes here.

Provenance

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

File metadata

  • Download URL: gwz-0.8.2-cp310-abi3-macosx_11_0_arm64.whl
  • Upload date:
  • Size: 4.5 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.8.2-cp310-abi3-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 602e950a3c684dc59dd959393b36e1309f40419313ea42921e34fbd3e5cafa4a
MD5 4895b3ba20c2b93e5edfcd66c7056895
BLAKE2b-256 7ec1d8d316db87859ca9202c6e377b1dd865dc1e4b0e72caa6f71e0d0e4373b1

See more details on using hashes here.

Provenance

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

File metadata

  • Download URL: gwz-0.8.2-cp310-abi3-macosx_10_12_x86_64.whl
  • Upload date:
  • Size: 4.4 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.8.2-cp310-abi3-macosx_10_12_x86_64.whl
Algorithm Hash digest
SHA256 c5664195441a24ddc83f7c5a76389ecfe72d56afedc8bd8fd6c0171998d6118e
MD5 264caf3b1e7a09d5808218a17d578b09
BLAKE2b-256 3da49c3249a41ebaad717fc2c3da4fbbe06f5a20e2b9b58367a21fdce06e295a

See more details on using hashes here.

Provenance

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

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