:c:func:`PyUnicode_KIND`). The *buffer* must point to an array of *size*
units of 1, 2 or 4 bytes per character, as given by the kind.
+ If necessary, the input *buffer* is copied and transformed into the
+ canonical representation. For example, if the *buffer* is a UCS4 string
+ (:c:macro:`PyUnicode_4BYTE_KIND`) and it consists only of codepoints in
+ the UCS1 range, it will be transformed into UCS1
+ (:c:macro:`PyUnicode_1BYTE_KIND`).
+
.. versionadded:: 3.3