These are not all encompassing, but we will try and capture noteable differences here.
- drop support for Python 3.9 which is now EOL
- add support for Python 3.14
- drop support for Python 3.7 and 3.8 which are now EOL
- add support for Python 3.12 and 3.13
- expose a
send_chunkmethod which will return the bare http response, but will still take care of some of the messier header negotiation - support for alternative names for optional send headers
- removed
mex-MessageTypeas a send header, it's not required - removed
mex-Fromas sender header, it's not required - support for setting
compressfor an individual message (rather than just using the 'transparent_compress' init arg)
- Moved to v2 mesh content types, sending
application/vnd.mesh.v2+jsonfor all requests, and receiving v2 response types. - Allows server to negotiate compression based on accept header.
- For chunked messages, all chunks except the last chunk, should be greater than
5MBin size, though this is not enforced in the client or mesh sandbox to allow testing. - All headers will be lowercase.
- Inbox pagination and filtering
list_messagessupportsmax_resultsandworkflow_filterpassthrough. - new method
iterate_message_ids, supporting workflow_filter - new method
iterate_messages, supporting workflow_filter message.statusare also lower caseaccepted,acknowledged,undeliverablerather thanAccepted,Acknowledged.
- previously
send_chunkretries could be optionally enabled by setting themax_chunk_retrieswhen creating the client object this has been replaced with theMeshRetrybased on the standardurlib3.Retryobject in the HTTPAdapter - By default, requests will have two retries with an exponential backoff of
500ms, but initialsend_messagerequests will not be retried. - If you wish to disable retries completely set
max_retries=0 - Timings and specific behaviour can be tuned using
retry_backoff_factor,retry_status_force_listandretry_methodsor completely overriden by passing inmax_retries=Retry(...) - NOTE: if retries are enabled, HTTPErrors will be wrapped in
request.exceptions.RetryError, ensure catching RetryError as per HTTPError
- HSCN endpoints are 'deprecated', and internet facing endpoints should be used in preference. For clarity HSCN endpoints have been renamed, prefixed
DEPRECATED_HSCN_. - Primary endpoints are now
LIVE_ENDPOINT,INT_ENDPOINT,DEP_ENDPOINT. TRAIN,OPENTEST,DEVendpoints have been removed, but will still work with the client if you have the url and certificate.
get_tracking_infoandtrack_by_message_idendpoints removed, in favourtrack_messageas v2 api tracking response is significantly different.
MockMeshApplicationserver removed completely, remaining unique pytests moved from sandbox to pytest-httpserver.
- Better defined TypedDicts (>py38) for all expected responses.