Why does bmesh discard float vertex color attributes?


I am using Blender 3.3 and I am currently trying to extend the great module https://github.com/TombstoneTumbleweedArt/import-ply-as-verts
to also export floating point vertex color attributes of a given mesh.

My hope is to bypass like this all the color space compression, to 8bit color attributes (see sRGB, log filmic, etc.).

Conceptually the import-ply-as-vert module has the following data flow: object->mesh->aggregate in bmesh->export data from bmesh

When trying to export a simple Suzanne with a single float vertex color attribute “ColF”, I noticed that bmesh drops the float color vertex attribute. Why is that?

Here is a minimal working example:

me = bpy.data.meshes['Suzanne'].to_mesh()
assert me = bpy.data.meshes['Suzanne'].to_mesh() == ["ColF"]

import bmesh
bm = bmesh.new(); bm.from_mesh(me)
assert bm.loops.layers.color.keys() == []
assert bm.loops.layers.float_color.keys() == []

Is this intended behavior of bmesh? Is there a way to make bmesh aware of the float vertex color attributes? I didn’t find any method for this in the API descriptions.