9#include <ucp/api/ucp.h>
15extern PyObject* UCXXError;
17extern PyObject* UCXXNoMessageError;
18extern PyObject* UCXXNoResourceError;
19extern PyObject* UCXXIOError;
20extern PyObject* UCXXNoMemoryError;
21extern PyObject* UCXXInvalidParamError;
22extern PyObject* UCXXUnreachableError;
23extern PyObject* UCXXInvalidAddrError;
24extern PyObject* UCXXNotImplementedError;
25extern PyObject* UCXXMessageTruncatedError;
26extern PyObject* UCXXNoProgressError;
27extern PyObject* UCXXBufferTooSmallError;
28extern PyObject* UCXXNoElemError;
29extern PyObject* UCXXSomeConnectsFailedError;
30extern PyObject* UCXXNoDeviceError;
31extern PyObject* UCXXBusyError;
32extern PyObject* UCXXCanceledError;
33extern PyObject* UCXXShmemSegmentError;
34extern PyObject* UCXXAlreadyExistsError;
35extern PyObject* UCXXOutOfRangeError;
36extern PyObject* UCXXTimedOutError;
37extern PyObject* UCXXExceedsLimitError;
38extern PyObject* UCXXUnsupportedError;
39extern PyObject* UCXXRejectedError;
40extern PyObject* UCXXNotConnectedError;
41extern PyObject* UCXXConnectionResetError;
42extern PyObject* UCXXFirstLinkFailureError;
43extern PyObject* UCXXLastLinkFailureError;
44extern PyObject* UCXXFirstEndpointFailureError;
45extern PyObject* UCXXEndpointTimeoutError;
46extern PyObject* UCXXLastEndpointFailureError;
48extern PyObject* UCXXCloseError;
49extern PyObject* UCXXConfigError;
57void create_exceptions();
78[[nodiscard]] PyObject* get_python_exception_from_ucs_status(ucs_status_t status);