Python wrapper for the IBM MQ REST API
Project description
pymqrest
Python wrapper for the IBM MQ administrative REST API.
pymqrest provides typed Python methods for every MQSC command exposed
by the IBM MQ 9.4 runCommandJSON REST endpoint. Attribute names are
automatically translated between Python snake_case and native MQSC
parameter names, so you work with Pythonic identifiers throughout.
Table of Contents
Installation
pip install pymqrest
Requires Python 3.12+.
Quick start
from pymqrest import MQRESTSession, LTPAAuth
session = MQRESTSession(
rest_base_url="https://localhost:9443/ibmmq/rest/v2",
qmgr_name="QM1",
credentials=LTPAAuth("mqadmin", "mqadmin"),
verify_tls=False,
)
# Query the queue manager
qmgr = session.display_qmgr()
print(qmgr["queue_manager_name"])
# List all local queues
queues = session.display_qlocal(name="*")
for q in queues:
print(q["queue_name"], q.get("current_queue_depth", 0))
# Idempotent object management
result = session.ensure_qlocal(
name="APP.REQUESTS",
request_parameters={"max_queue_depth": "50000"},
)
print(result.action) # EnsureAction.CREATED, UPDATED, or UNCHANGED
API overview
Session
MQRESTSession manages authentication, connection settings, and
attribute mapping. All command methods are called directly on the
session object.
MQRESTSession(
rest_base_url="https://host:9443/ibmmq/rest/v2",
qmgr_name="QM1",
credentials=LTPAAuth("user", "pass"), # or CertificateAuth / BasicAuth
map_attributes=True, # snake_case <-> MQSC translation (default)
mapping_strict=True, # raise on unknown attributes (default)
verify_tls=True, # TLS certificate verification (default)
timeout_seconds=30.0, # HTTP request timeout (default)
)
Commands
Over 130 generated methods cover the MQSC command set:
| Verb | Methods | Returns | Example |
|---|---|---|---|
display_* |
44 | list[dict] or dict | None |
session.display_qlocal(name="*") |
define_* |
19 | None |
session.define_qlocal(name="Q1") |
alter_* |
17 | None |
session.alter_qlocal(name="Q1", ...) |
delete_* |
16 | None |
session.delete_qlocal(name="Q1") |
| Other | 41 | None |
start_channel, stop_listener, clear_qlocal, ... |
All methods accept optional request_parameters and
response_parameters dicts. DISPLAY commands default to returning
all attributes.
Ensure methods
Idempotent ensure_* methods implement a declarative upsert pattern
for 15 object types (queues, channels, topics, listeners, and more):
- DEFINE when the object does not exist
- ALTER only the attributes that differ
- No-op when all specified attributes already match
Returns an EnsureResult whose action attribute is
EnsureAction.CREATED, UPDATED, or UNCHANGED. When the action is
UPDATED, result.changed contains the attribute names that differed.
Attribute mapping
When map_attributes=True (the default), attribute names and values
are translated automatically:
| Direction | From | To | Example |
|---|---|---|---|
| Request | max_queue_depth |
MAXDEPTH |
snake_case to MQSC |
| Response | MAXDEPTH |
max_queue_depth |
MQSC to snake_case |
Disable per-session (map_attributes=False) or per-call for raw MQSC
parameter access.
Authentication
Three credential types are supported:
CertificateAuth(cert_path, key_path)— mutual TLS client certificatesLTPAAuth(username, password)— LTPA token login (automatic at session creation)BasicAuth(username, password)— HTTP Basic authentication
Documentation
Full documentation: https://wphillipmoore.github.io/pymqrest/
Development
uv sync --group dev
uv run python3 scripts/dev/validate_local.py
License
GPL-3.0-or-later. See LICENSE.
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file pymqrest-1.1.0.tar.gz.
File metadata
- Download URL: pymqrest-1.1.0.tar.gz
- Upload date:
- Size: 55.8 kB
- Tags: Source
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.13.7
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
ec438b16e2867fe5ede369e9532bf1a816f9d1aabc254311d952a17728658165
|
|
| MD5 |
2273409adb3a99160ca9c166f449721d
|
|
| BLAKE2b-256 |
798d7cf4be2bbaea70dd5d496c713c788ebdb9bd81a6cae3e5b739505c842a9a
|
Provenance
The following attestation bundles were made for pymqrest-1.1.0.tar.gz:
Publisher:
publish.yml on wphillipmoore/pymqrest
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
pymqrest-1.1.0.tar.gz -
Subject digest:
ec438b16e2867fe5ede369e9532bf1a816f9d1aabc254311d952a17728658165 - Sigstore transparency entry: 946049310
- Sigstore integration time:
-
Permalink:
wphillipmoore/pymqrest@98fe603702f8e2c2989b06debe6120920b2ba161 -
Branch / Tag:
refs/heads/main - Owner: https://github.com/wphillipmoore
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
publish.yml@98fe603702f8e2c2989b06debe6120920b2ba161 -
Trigger Event:
push
-
Statement type:
File details
Details for the file pymqrest-1.1.0-py3-none-any.whl.
File metadata
- Download URL: pymqrest-1.1.0-py3-none-any.whl
- Upload date:
- Size: 55.7 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.13.7
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
da7d84cc1418ef8039a07e235822f82c722620030892b815060fb465fdbcd42a
|
|
| MD5 |
7eb5d48a4446b853d82d26ba50c4a518
|
|
| BLAKE2b-256 |
f83d9fc06018be93fb109ee8a38a699e780ac527ec43ab1c21049c58079cad2d
|
Provenance
The following attestation bundles were made for pymqrest-1.1.0-py3-none-any.whl:
Publisher:
publish.yml on wphillipmoore/pymqrest
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
pymqrest-1.1.0-py3-none-any.whl -
Subject digest:
da7d84cc1418ef8039a07e235822f82c722620030892b815060fb465fdbcd42a - Sigstore transparency entry: 946049317
- Sigstore integration time:
-
Permalink:
wphillipmoore/pymqrest@98fe603702f8e2c2989b06debe6120920b2ba161 -
Branch / Tag:
refs/heads/main - Owner: https://github.com/wphillipmoore
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
publish.yml@98fe603702f8e2c2989b06debe6120920b2ba161 -
Trigger Event:
push
-
Statement type: