Remove mcrfpy.Animation from public Python module exports

Move PyAnimationType from exported_types[] to internal_types[] in
McRFPy_API.cpp. The C++ Animation class continues to exist; it is
constructed internally by drawable.animate(...) via std::make_shared
and wrapped via tp_alloc against the (still PyType_Ready'd) type.

Direct construction via mcrfpy.Animation(...) is removed because every
Animation is bound to a target object, which is more naturally
expressed as obj.animate(...). Pre-1.0 API freeze, no compat shim.

Tests using mcrfpy.Animation(...) will need to be updated separately.

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
This commit is contained in:
John McCardle 2026-04-18 12:36:28 -04:00
commit a8c29946e3

View file

@ -497,9 +497,6 @@ PyObject* PyInit_mcrfpy()
/*grid layers (#147)*/
&PyColorLayerType, &PyTileLayerType,
/*animation*/
&PyAnimationType,
/*timer*/
&PyTimerType,
@ -574,6 +571,10 @@ PyObject* PyInit_mcrfpy()
/*shader uniform collection - returned by drawable.uniforms but not directly instantiable (#106)*/
&mcrfpydef::PyUniformCollectionType,
/*animation - constructed internally by drawable.animate() and returned by mcrfpy.animations,
but not directly instantiable from Python (pre-1.0 API freeze)*/
&PyAnimationType,
nullptr};
// Set up PyWindowType methods and getsetters before PyType_Ready