Blending normals at edge of mesh and accessing result with python
So it seems that data transfer for custom normals works opposite to other data transfers. The object you select first receives the normals from the active object.
The operator works by adding custom normals to the target, not by changing the regular normals.
The custom normals appear to be oriented backwards to the regular normals, and backwards to what you see on the display. If I make the standard cube and select face 0, its normal is (-1,0,0) but the custom normal on one of the verts in its loops is (1,0,0). That seems wrong to me, but I don't know how else to interpret the data.
I'm still not sure how to access these normals. Making a bmesh and using calc_normal on a loop isn't given the results I expect. On the cube the custom normals are still pointing along the axes even when the visuals say the cube is smoothed.
Edit: When I look at my object's mesh's loops and access the normal property of each loop, I see what I expect: The normal points in the direction I expect and it matches what's shown visually. But the bmesh is not picking them up in a way that's obvious to me.