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.1.tar.gz (673.6 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.1-py3-none-any.whl (166.7 kB view details)

Uploaded Python 3

File details

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

File metadata

  • Download URL: pragma_onkey-0.0.1.tar.gz
  • Upload date:
  • Size: 673.6 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.1.tar.gz
Algorithm Hash digest
SHA256 bf99850806c52445f78cd1af036cfd17a978e016fc03ec706706b0e04c280e02
MD5 8f44cf5c6a1694c725b8ab29fb6d15b8
BLAKE2b-256 0a33f2a2815030a685cab714decf8537ab4f3b9656cfe7c321ff7e7566d12363

See more details on using hashes here.

Provenance

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

File metadata

  • Download URL: pragma_onkey-0.0.1-py3-none-any.whl
  • Upload date:
  • Size: 166.7 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.1-py3-none-any.whl
Algorithm Hash digest
SHA256 3c10ef7576083d3fad28a66db50ce2f3c52035a3ace85e41c986b676913fb4a8
MD5 373143311086793b10e3739fc5d5d756
BLAKE2b-256 9ae62bf409ff5fec1be4845a2ed5323cabd73dae31a992e0b16a14e14f3b3620

See more details on using hashes here.

Provenance

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