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.1.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.1-cp310-abi3-win_amd64.whl (1.9 MB view details)

Uploaded CPython 3.10+Windows x86-64

gwz-0.8.1-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.1-cp310-abi3-manylinux_2_39_aarch64.whl (4.2 MB view details)

Uploaded CPython 3.10+manylinux: glibc 2.39+ ARM64

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

Uploaded CPython 3.10+macOS 11.0+ ARM64

gwz-0.8.1-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.1.tar.gz.

File metadata

  • Download URL: gwz-0.8.1.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.1.tar.gz
Algorithm Hash digest
SHA256 b470a0c9b24b08104780ddf52b5707d896fdc6f5177eb9be7a4b57ac8c39c23a
MD5 be28f65e6680ef751a738998c8d97f2b
BLAKE2b-256 fceb702a8e589c714871d669c536be1891d3d06e9ccf068206d6c969eb21a005

See more details on using hashes here.

Provenance

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

File metadata

  • Download URL: gwz-0.8.1-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.1-cp310-abi3-win_amd64.whl
Algorithm Hash digest
SHA256 c36e4c0a76f37d1355f165e0e119b0c78ea7268e144f3e4fede477e5a436f725
MD5 c9c9b21f8622feaa869498d9a0dca22a
BLAKE2b-256 13b2878af406592dd960e3bb748749b1d4fc6d22aebad6e770811757c9b25df9

See more details on using hashes here.

Provenance

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

File metadata

  • Download URL: gwz-0.8.1-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.1-cp310-abi3-manylinux_2_39_x86_64.whl
Algorithm Hash digest
SHA256 13c3fe4a46669b14b28e8603ba9fe11a29454ae7f7ed1a84bf16778e411a5cd9
MD5 942e976c761d470b852ec51a7f7b5ca2
BLAKE2b-256 69bc2e47154f9d764c346cfb3c50eb5e1682fa890a9983fe12dd190b28380e75

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for gwz-0.8.1-cp310-abi3-manylinux_2_39_aarch64.whl
Algorithm Hash digest
SHA256 b5a7208c02902bc00ed4d90e7b3801793c54145b88d79ee19cff978373842d16
MD5 a9023d525d786315a752577923dff0bf
BLAKE2b-256 cb43de448dfd11e372d35d8cda4fe2436da7f46259ad206a7d924c2af715295b

See more details on using hashes here.

Provenance

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

File metadata

  • Download URL: gwz-0.8.1-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.1-cp310-abi3-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 f4817d6474ceab1549b0e22334a12019c488114099006ac401d1d70d196cf092
MD5 9d626e053e6cf36d021ef5c861d9aa29
BLAKE2b-256 edd0c1733f9fbefc92ee880f2a5d92350338c3ca53b98e2c9d9b200621cacbcf

See more details on using hashes here.

Provenance

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

File metadata

  • Download URL: gwz-0.8.1-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.1-cp310-abi3-macosx_10_12_x86_64.whl
Algorithm Hash digest
SHA256 f9413caf87bebe19dbf879d4dc2021b6d9af9f84d7de6b404381cc239f1d910c
MD5 0326da63f1bfeecf2fa762c6130e6028
BLAKE2b-256 44cbcbed4416088c15070b42d6c75765599fd29bfb06688b862ec156f5198fb8

See more details on using hashes here.

Provenance

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