5.6.15. APIs (Python)

5.6.15.1. [Major] Exception when printing or converting a sequence of octets to string

Trying to convert a user type containing sequences or arrays of octets to a string in the Python API may have caused a UnicodeDecodeError.

For example, given the following type in IDL:

struct MyType {
    sequence<octet> my_octets;
};

Or as defined in Python:

@idl.struct
class MyType:
my_octets: Sequence[idl.uint8] = field(default_factory=list)

The problem specifically affected the implementation of the repr methods of the types dds.Int8Seq and dds.Uint8Seq. These methods printed the elements as characters instead of integers.

Now, octet sequences are converted to strings correctly, and the elements are treated as integers instead of characters.

[RTI Issue ID PY-163]

5.6.15.2. [Major] Incorrect deserialization of nested union with unknown discriminator

When a dds.DataReader receives a data sample in which a union contains an unknown discriminator, the union object (obj) is expected to be initialized with the received discriminator and a value set to None. However, the value was not None when the union was nested (it was correctly set to None if the union was the top-level type).

[RTI Issue ID PY-182]

5.6.15.3. [Major] x64Linux Connext Python API not able to use libraries from $NDDSHOME/lib

On x64Linux, applications using the Connext Python API and relying on libraries in $NDDSHOME/lib to, for example, load an add-on library such as the Security Plugins, failed due to an undefined symbol issue due to ABI incompatibility. Note that normally the Python API doesn’t load the native libraries from Nddshome.

[RTI Issue ID PY-168]

5.6.15.4. [Minor] QosProvider could not be directly created with QosProviderParams

A QosProvider could not be directly created with QosProviderParams; it required setting the parameters after creation.

The missing init method has been added and the following example code is now legal:

provider = dds.QosProvider(
    dds.QosProviderParams(
        url_profile=["file1.xml", "file2.xml"], ignore_user_profile=True
    )
)

[RTI Issue ID PY-171]