Skip to main content

Pragma/OnKey SOAP client library.

Project description

pragma-onkey

Standalone Pragma/OnKey SOAP client library with generated schemas and services. The client is tenant-neutral and configured at runtime with your OnKey base URL.

Installation

If you are consuming a published build:

pip install pragma-onkey

For local development:

uv venv
source .venv/bin/activate
uv pip install -e ".[dev]"

Configuration

The client resolves WSDL endpoints using a base URL and an optional query suffix.

  • wsdl_base_url: your tenant base URL (required unless a service provides wsdl_url).
  • wsdl_query: appended when building the WSDL URL (default ?singleWsdl).

Example base URL format:

https://your.domain/tenant

Usage

Sync client with typed, snake_case accessors:

from pragma_onkey import PragmaOnkeyClient

client = PragmaOnkeyClient(
    wsdl_base_url="https://your.domain/tenant",
    wsdl_query="?singleWsdl",
)

alarm_service = client.alarm_import_service
response = alarm_service.import_alarms(payload)

Async client:

from pragma_onkey import PragmaOnkeyAsyncClient

client = PragmaOnkeyAsyncClient(wsdl_base_url="https://your.domain/tenant")
response = await client.alarm_import_service.import_alarms(payload)

Server-side async operations (not Python async):

# "import_alarms_async" starts an async job on the server and returns a job response.
job = client.alarm_import_service.import_alarms_async(payload)
progress = client.alarm_import_service.fetch_async_import_progress(progress_payload)

Dynamic access (less type-friendly):

service = client.get_service("AlarmImportService")

Development

This module is managed with uv and targets Python 3.12.

uv venv
source .venv/bin/activate
uv pip install -e ".[dev]"

Run linting and formatting:

ruff check .
ruff format .

Regenerating from WSDLs

Generated outputs include schemas, services, the service registry, and typed accessors.

python tools/generate_from_wsdls.py

Generated files:

  • src/pragma_onkey/schemas/*
  • src/pragma_onkey/services/*
  • src/pragma_onkey/service_registry.py
  • src/pragma_onkey/service_accessors.py

Distribution

Local build and validation:

  1. Ensure your tags follow vX.Y.Z (the tag is the version source of truth).
  2. Regenerate artifacts: python tools/generate_from_wsdls.py.
  3. Clean previous builds: rm -rf dist build *.egg-info.
  4. Install build tools: uv pip install build twine.
  5. Build the package: python -m build.
  6. Verify metadata: python -m twine check dist/*.
  7. (Optional) test install: uv pip install dist/pragma_onkey-*.whl.
  8. (Optional) publish: python -m twine upload dist/*.

GitHub Actions publishing (tag-based):

  1. Configure a PyPI Trusted Publisher for this repo.
  2. Tag and push a release (the tag sets the package version):
git tag v1.0.0
git push origin v1.0.0

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

pragma_onkey-0.0.2.tar.gz (674.9 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

pragma_onkey-0.0.2-py3-none-any.whl (174.0 kB view details)

Uploaded Python 3

File details

Details for the file pragma_onkey-0.0.2.tar.gz.

File metadata

  • Download URL: pragma_onkey-0.0.2.tar.gz
  • Upload date:
  • Size: 674.9 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.7

File hashes

Hashes for pragma_onkey-0.0.2.tar.gz
Algorithm Hash digest
SHA256 65b97952a10701a7fb6c00cd295a9a436cb4048f57b5d556627fbe48eb64a876
MD5 4aeaf99b535bf609002770b2c6b5f1e6
BLAKE2b-256 e117092bd733ce6711833b9fbc0652ac8774caa56560cbe69d10c8495030ca5e

See more details on using hashes here.

Provenance

The following attestation bundles were made for pragma_onkey-0.0.2.tar.gz:

Publisher: publish.yml on drakkentech-co-za/pragma-onkey-api-client

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

File details

Details for the file pragma_onkey-0.0.2-py3-none-any.whl.

File metadata

  • Download URL: pragma_onkey-0.0.2-py3-none-any.whl
  • Upload date:
  • Size: 174.0 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.7

File hashes

Hashes for pragma_onkey-0.0.2-py3-none-any.whl
Algorithm Hash digest
SHA256 b464d04348112b33508f79c0c98f6e29f5e9420ca517167476362a87a5ae6fba
MD5 b1713997d3cfb4c729582d30bf014690
BLAKE2b-256 031bd16f512357376a70a62acce5603a0222c7e3ef098a183244782975fb599f

See more details on using hashes here.

Provenance

The following attestation bundles were made for pragma_onkey-0.0.2-py3-none-any.whl:

Publisher: publish.yml on drakkentech-co-za/pragma-onkey-api-client

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