Skip to main content

AMQP 1.0 Client Library for Python

Project description

uAMQP for Python

An AMQP 1.0 client library for Python.

Installation

Wheels are provided for most major operating systems, so you can install directly with pip:

$ pip install uamqp

If you are running a Linux distro that does not support ManyLinux1, you can install from source:

$ apt-get update
$ apt-get install -y build-essential libssl-dev uuid-dev cmake libcurl4-openssl-dev pkg-config python3-dev python3-pip
$ pip3 install uamqp --no-binary

Python 2.7 support

Coming soon…

Developer Setup

In order to run the code directly, the Cython extension will need to be build first.

Pre-requisites

  • Windows: Setup a build environment.

  • Linux: Install dependencies as descriped above in the installation instructions.

  • MacOS: Install cmake using Homebrew:

$ brew install cmake

Building the extension

This project has two C library dependencies. They are vendored in this repository in these versions:

To build, start by creating a virtual environment and installing the required Python packages:

$ python -m venv env
$ env/Scripts/activate
(env)$ pip install -r dev_requirements.txt

Next, run the build command:

$ python setup.py built_ext --inplace

Tests

The tests can be run from within the virtual environment. The extension must be built first using the instructions above.

(env)$ pytest

Provide Feedback

If you encounter any bugs or have suggestions, please file an issue in the Issues section of the project.

Contributing

This project welcomes contributions and suggestions. Most contributions require you to agree to a Contributor License Agreement (CLA) declaring that you have the right to, and actually do, grant us the rights to use your contribution. For details, visit https://cla.microsoft.com.

When you submit a pull request, a CLA-bot will automatically determine whether you need to provide a CLA and decorate the PR appropriately (e.g., label, comment). Simply follow the instructions provided by the bot. You will only need to do this once across all repos using our CLA.

This project has adopted the Microsoft Open Source Code of Conduct. For more information see the Code of Conduct FAQ or contact opencode@microsoft.com with any additional questions or comments.

Release History

0.1.0rc1 (2018-05-29)

  • Fixed import error in async receiver.

  • Exposed sender/receiver destroy function.

  • Moved receiver.open on_message_received argument to constructor.

  • Removed sasl module and moved internal classes into authentication module.

  • Added encoding parameter everywhere where strings are encoded.

  • Started documentation.

  • Updated uAMQP-C to 1.2.4 and C Shared Utility to 1.1.4 (includes fix for issue #12).

  • Fixed return type of MgmtOperation.execute - now returns ~uamqp.Message.

  • Made AMQP connection/session/sender/receiver types in a client overridable.

  • Added debug trace to management operations.

  • Fixed error in management callback on failed operation.

  • Default AMQP encoding of bytes is now a String type and a bytearray is a Binary type.

  • Added AMQP Array type and fixed Long type range validation.

  • Added header argument to Message and BatchMessage for setting a MessageHeader.

  • Fixed MessageHeader attribute setters.

0.1.0b5 (2018-04-27)

  • Added Certifi as a depedency to make OpenSSL certs dynamic.

  • Added verify option to authentication classes to allow setting custom certificate path (for Linux and OSX).

0.1.0b4 (2018-04-19)

  • Fixed memory leak in async receive.

  • Removed close_on_done argument from client receive functions.

  • Added receive iterator to synchronous client.

  • Made async iter receive compatible with Python 3.5.

0.1.0b3 (2018-04-14)

  • Fixed SSL errors in manylinux wheels.

  • Fixed message annoations attribute.

  • Fixed bugs in batched messages and sending batched messages.

  • Fixed conflicting receiver link ID.

  • Fixed hanging receiver by removing queue max size in sync clients.

  • Added support for sending messages with None and empty bodies.

0.1.0b2 (2018-04-06)

  • Added message send retry.

  • Added timeouts and better error handling for management requests.

  • Improved connection and auth error handling and error messages.

  • Fixed message annotations type.

  • SendClient.send_all_messages() now returns a list of message send statuses.

  • Fixed OpenSSL platform being initialized multiple times.

  • Fixed auto-refresh of SAS tokens.

  • Altered receive_batch behaviour to return messages as soon as they’re available.

  • Parameter batch_size in receive_batch renamed to max_batch_size.

  • Fixed message application_properties decode error.

  • Removed MacOS dependency on OpenSSL and libuuid.

0.1.0b1 (2018-03-24)

  • Added management request support.

  • Fixed message-less C operation ValueError.

  • Store message metadata in Python rather than C.

  • Refactored Send and Receive clients to create a generic parent AMQPClient.

  • Fixed None receive timestamp bug.

  • Removed async iterator queue due to instabilities - all callbacks are now synchronous.

0.1.0a3 (2018-03-19)

  • Added support for asynchronous message receive by iterator or batch.

  • Removed synchronous receive iterator, and replaced with synchronous batch receive.

  • Added sync and async context managers for Send and Receive Clients.

  • Fixed token instability and added put token retry policy.

  • Exposed Link ATTACH properties.

  • A connection now has a single $cbs session that can be reused between clients.

  • Added C debug trace logging to the Python logger (‘uamqp.c_uamqp’)

0.1.0a2 (2018-03-12)

  • Exposed OPEN performative properties for connection telemetry.

  • Exposed setters for message.message_annotations and message.application_properties.

  • Made adjustments to connection open and close to facilitate sharing a connection object between send/receive clients.

  • Support for username/password embedded in connection URI.

  • Clients can now optionally leave connection/session/link open for re-use.

  • Updated build process and installation instructions.

  • Various bug fixes to increase stability.

0.1.0a1 (2018-03-04)

  • Initial release

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

uamqp-0.1.0rc1.tar.gz (5.6 MB view details)

Uploaded Source

Built Distributions

uamqp-0.1.0rc1-cp36-cp36m-win_amd64.whl (729.4 kB view details)

Uploaded CPython 3.6m Windows x86-64

uamqp-0.1.0rc1-cp36-cp36m-win32.whl (658.4 kB view details)

Uploaded CPython 3.6m Windows x86

uamqp-0.1.0rc1-cp36-cp36m-manylinux1_x86_64.whl (2.7 MB view details)

Uploaded CPython 3.6m

uamqp-0.1.0rc1-cp36-cp36m-manylinux1_i686.whl (2.4 MB view details)

Uploaded CPython 3.6m

uamqp-0.1.0rc1-cp36-cp36m-macosx_10_6_intel.whl (1.9 MB view details)

Uploaded CPython 3.6m macOS 10.6+ intel

uamqp-0.1.0rc1-cp35-cp35m-win_amd64.whl (723.9 kB view details)

Uploaded CPython 3.5m Windows x86-64

uamqp-0.1.0rc1-cp35-cp35m-win32.whl (649.5 kB view details)

Uploaded CPython 3.5m Windows x86

uamqp-0.1.0rc1-cp35-cp35m-manylinux1_x86_64.whl (2.6 MB view details)

Uploaded CPython 3.5m

uamqp-0.1.0rc1-cp35-cp35m-manylinux1_i686.whl (2.4 MB view details)

Uploaded CPython 3.5m

uamqp-0.1.0rc1-cp35-cp35m-macosx_10_6_intel.whl (1.9 MB view details)

Uploaded CPython 3.5m macOS 10.6+ intel

uamqp-0.1.0rc1-cp34-cp34m-win_amd64.whl (722.7 kB view details)

Uploaded CPython 3.4m Windows x86-64

uamqp-0.1.0rc1-cp34-cp34m-win32.whl (646.3 kB view details)

Uploaded CPython 3.4m Windows x86

uamqp-0.1.0rc1-cp34-cp34m-manylinux1_x86_64.whl (2.6 MB view details)

Uploaded CPython 3.4m

uamqp-0.1.0rc1-cp34-cp34m-manylinux1_i686.whl (2.4 MB view details)

Uploaded CPython 3.4m

uamqp-0.1.0rc1-cp34-cp34m-macosx_10_6_intel.whl (1.9 MB view details)

Uploaded CPython 3.4m macOS 10.6+ intel

File details

Details for the file uamqp-0.1.0rc1.tar.gz.

File metadata

  • Download URL: uamqp-0.1.0rc1.tar.gz
  • Upload date:
  • Size: 5.6 MB
  • Tags: Source
  • Uploaded using Trusted Publishing? No

File hashes

Hashes for uamqp-0.1.0rc1.tar.gz
Algorithm Hash digest
SHA256 b7e6e3776838318298a03e643b03ff3fb27508745e92ac0bd02c552c877e371d
MD5 3dcb39bfc793c82d0157889967c0d575
BLAKE2b-256 dd1284c134e8676526ec73c4748ed4ed659743aad828fe9dee150941d495831b

See more details on using hashes here.

File details

Details for the file uamqp-0.1.0rc1-cp36-cp36m-win_amd64.whl.

File metadata

File hashes

Hashes for uamqp-0.1.0rc1-cp36-cp36m-win_amd64.whl
Algorithm Hash digest
SHA256 9b21a74bab95376b56a2fafc4c5240e7895f23235bdb84c71b44fdc8ddc3fb9b
MD5 7b8c69c0d1f4c9f4fe812d8fb3180139
BLAKE2b-256 26c5530c273951e7e5628fc740199a9087c95e3b5cc7e1891666e20395b2c10f

See more details on using hashes here.

File details

Details for the file uamqp-0.1.0rc1-cp36-cp36m-win32.whl.

File metadata

File hashes

Hashes for uamqp-0.1.0rc1-cp36-cp36m-win32.whl
Algorithm Hash digest
SHA256 dc993aeedbc4d0640b90efa2443394cb17deca6645894f55b4b603be6a588073
MD5 c50cb0c336a2bd5704e2e713d870b696
BLAKE2b-256 3af4798a4739a77cd7544fadc2d09f61672e4aaeffc4e7e650185f329f47aa30

See more details on using hashes here.

File details

Details for the file uamqp-0.1.0rc1-cp36-cp36m-manylinux1_x86_64.whl.

File metadata

File hashes

Hashes for uamqp-0.1.0rc1-cp36-cp36m-manylinux1_x86_64.whl
Algorithm Hash digest
SHA256 06d879461a6394e85b0df9d5b317020d9def1d041a2f79e468e149bc3b7c42a6
MD5 2f25adca4b96479628dba9ff37b116f3
BLAKE2b-256 93d43304f09ca6bfb6141485a795474e9976b6bf46bbdb7d09c27470c7a82724

See more details on using hashes here.

File details

Details for the file uamqp-0.1.0rc1-cp36-cp36m-manylinux1_i686.whl.

File metadata

File hashes

Hashes for uamqp-0.1.0rc1-cp36-cp36m-manylinux1_i686.whl
Algorithm Hash digest
SHA256 98d1553afd11c57c97d93ffc82c0c4ad1590bb87eccd3f75600858bb328a5cc1
MD5 94c88c924243f94df7ed8484e63d6604
BLAKE2b-256 d6510d0ca8b80268f793ab73d60fa80d8e2fe9f5c8ce262d72f88abdb5d6ef6b

See more details on using hashes here.

File details

Details for the file uamqp-0.1.0rc1-cp36-cp36m-macosx_10_6_intel.whl.

File metadata

File hashes

Hashes for uamqp-0.1.0rc1-cp36-cp36m-macosx_10_6_intel.whl
Algorithm Hash digest
SHA256 27435c7e9597b37a91459f1aa7d21c2b06fda861141c09bd40a232055dcdc021
MD5 3163a2b2a15642fe4effb8e76343637f
BLAKE2b-256 a7b7420422a5065c3522d817eaf57c4e7b9ad5bdb9a4093511281e5dc134afce

See more details on using hashes here.

File details

Details for the file uamqp-0.1.0rc1-cp35-cp35m-win_amd64.whl.

File metadata

File hashes

Hashes for uamqp-0.1.0rc1-cp35-cp35m-win_amd64.whl
Algorithm Hash digest
SHA256 98ae25db87b440790bce372575623f3c0701dc7c8720bb72aa30ff15afbcbfec
MD5 5f27851f7edb0e574f432c1551790c8c
BLAKE2b-256 da8a4d2ac4af0e09b5566a178ff8e9bffd0a430b9ab31ca5c8ce8e4068ce668d

See more details on using hashes here.

File details

Details for the file uamqp-0.1.0rc1-cp35-cp35m-win32.whl.

File metadata

File hashes

Hashes for uamqp-0.1.0rc1-cp35-cp35m-win32.whl
Algorithm Hash digest
SHA256 213b36e02035203e370aeba9b9c6a0128daa2b39cc0ec7994a9dbfef11dd4db2
MD5 d96da481816bb8b6b45d86202ae53c7b
BLAKE2b-256 d1bdc120f57e3e5c776a6d01874a1a5f245f41e7e4fe720c3be22bdb261995c6

See more details on using hashes here.

File details

Details for the file uamqp-0.1.0rc1-cp35-cp35m-manylinux1_x86_64.whl.

File metadata

File hashes

Hashes for uamqp-0.1.0rc1-cp35-cp35m-manylinux1_x86_64.whl
Algorithm Hash digest
SHA256 8c97c89902bc8b942cdf54fdfebb8e7d7e5da8da4936139135ebfba476dc8fe2
MD5 7027fad971f5bbf38a6ec226557089da
BLAKE2b-256 72aca7beffb3a227c60757f4e4998dd5dce15f20131f865b4e18757bb2800285

See more details on using hashes here.

File details

Details for the file uamqp-0.1.0rc1-cp35-cp35m-manylinux1_i686.whl.

File metadata

File hashes

Hashes for uamqp-0.1.0rc1-cp35-cp35m-manylinux1_i686.whl
Algorithm Hash digest
SHA256 79eb7a1e72b7cc9c861dfd042acaf3fb5389117d67ca8ec3394cf34fe0847ba3
MD5 0f2652ddbd092cd809f3d4ac4a113b27
BLAKE2b-256 0463abea72344fce6fc8eb6d486a902d3a2b7178d99ebd6dfd5e9dbfdc998dd3

See more details on using hashes here.

File details

Details for the file uamqp-0.1.0rc1-cp35-cp35m-macosx_10_6_intel.whl.

File metadata

File hashes

Hashes for uamqp-0.1.0rc1-cp35-cp35m-macosx_10_6_intel.whl
Algorithm Hash digest
SHA256 8c8a1b9ba302e377d423abf227efcd41b6fa6c3c1fa4c2a16994c3eb7e5c2d3c
MD5 edb90402eb3c529752d88c681dfe3cea
BLAKE2b-256 1e380dffca199752fd4f18c981d28322e02858e92152d223ffe2454a152df5b6

See more details on using hashes here.

File details

Details for the file uamqp-0.1.0rc1-cp34-cp34m-win_amd64.whl.

File metadata

File hashes

Hashes for uamqp-0.1.0rc1-cp34-cp34m-win_amd64.whl
Algorithm Hash digest
SHA256 1e85fee1ac33ed313e7bfeedc5619efd256fc96d55e777acc8af89c4c933086a
MD5 e5d16e64a8d955d734965acb7e252caa
BLAKE2b-256 fb44354447cb1e01c301db746eaff8a114430f618fa53ff98f76aff77b21d7f5

See more details on using hashes here.

File details

Details for the file uamqp-0.1.0rc1-cp34-cp34m-win32.whl.

File metadata

File hashes

Hashes for uamqp-0.1.0rc1-cp34-cp34m-win32.whl
Algorithm Hash digest
SHA256 63c4bd69c58e6d82a4dc01fb80e2f328a90f51bfa3f4892551a37230b7a3197b
MD5 de74ba751d66d5425c00b59c6a99ea28
BLAKE2b-256 ccf6d392ebe8b3fd7001f974df698df3817ad8f5fbf60e0a1c89e7413615c0c7

See more details on using hashes here.

File details

Details for the file uamqp-0.1.0rc1-cp34-cp34m-manylinux1_x86_64.whl.

File metadata

File hashes

Hashes for uamqp-0.1.0rc1-cp34-cp34m-manylinux1_x86_64.whl
Algorithm Hash digest
SHA256 3daf84adac1f90006d7ca70bdaf5436f5e63b7c4a8c4cd5d25f81c8e02e0599e
MD5 8c4cd4a682867a51727e83703d07fa31
BLAKE2b-256 ed3f5b40f2a73db72e345936bb0750d819cc91d1213858d3a32e101f7009d838

See more details on using hashes here.

File details

Details for the file uamqp-0.1.0rc1-cp34-cp34m-manylinux1_i686.whl.

File metadata

File hashes

Hashes for uamqp-0.1.0rc1-cp34-cp34m-manylinux1_i686.whl
Algorithm Hash digest
SHA256 1f3cd18e5c75109074f9b048494f4fa6ab4a193d14c6552739b09e80f9e7f026
MD5 7b1cb25fc151ac3108917582002c524b
BLAKE2b-256 a2c43e2dfacfaf85f0af82ebdbd04c645318a54c863d8c3f0b1577459ab8519d

See more details on using hashes here.

File details

Details for the file uamqp-0.1.0rc1-cp34-cp34m-macosx_10_6_intel.whl.

File metadata

File hashes

Hashes for uamqp-0.1.0rc1-cp34-cp34m-macosx_10_6_intel.whl
Algorithm Hash digest
SHA256 ebb64b3b89ecc59454a3698c779ac55baab8f45ae4338619e5f9adbe21553974
MD5 f47e8ab262ca15247ca16ab9e1e3146a
BLAKE2b-256 caa08b6983c49e857e64327754490519de17602117ffbc13482be40e9f65047d

See more details on using hashes here.

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page