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).
  • use_soap11: force SOAP 1.1 Basic bindings instead of SOAP 1.2 Custom (default False).

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",
    use_soap11=False,
)

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.4.tar.gz (680.0 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.4-py3-none-any.whl (173.2 kB view details)

Uploaded Python 3

File details

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

File metadata

  • Download URL: pragma_onkey-0.0.4.tar.gz
  • Upload date:
  • Size: 680.0 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.4.tar.gz
Algorithm Hash digest
SHA256 68c08a766f103c98992a13508612ba1ffd7477f894385ad01b71191c91b57dbe
MD5 a57183568e407ed9d1552da4492eb3ca
BLAKE2b-256 03937df30d28bcc58f5e2abf62080c2dddcffaf5f775a036b208abd71c5fd57e

See more details on using hashes here.

Provenance

The following attestation bundles were made for pragma_onkey-0.0.4.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.4-py3-none-any.whl.

File metadata

  • Download URL: pragma_onkey-0.0.4-py3-none-any.whl
  • Upload date:
  • Size: 173.2 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.4-py3-none-any.whl
Algorithm Hash digest
SHA256 98b68182d959a9ae9878fd70c0139ee2c53dd3fb177252b4a51e56c422f15d87
MD5 aeb86534fb4f539811850d828bb46793
BLAKE2b-256 6817c4f02b7d3afc0b88fdfec5c6589d7e06b88f24664fc0b11c107f9030c1be

See more details on using hashes here.

Provenance

The following attestation bundles were made for pragma_onkey-0.0.4-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