- Copy gpu.state, bpy.path, gpu.types overrides to 4.0-4.5
- Add bpy.msgbus override for 4.5
- Skip temp_override probe on Blender < 4.4 (hangs on 4.3)
- Fix _is_getset_writable to use docstring hints instead of __set__ probe
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
subscribe_rna and publish_rna accept any RNA-backed Python object as key
(Vector, Euler, type objects, bl_rna, etc.), not just Property | Struct.
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
RNA properties with subtypes like TRANSLATION, XYZ, EULER, QUATERNION,
COLOR, MATRIX are now mapped to the corresponding mathutils types
(Vector, Euler, Quaternion, Color, Matrix) instead of list[float].
Also:
- Add gpu.types override for 5.1 (uniform_float accepts mathutils types)
- Fix README snippet to use assert for active_object None check
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
- Widen bare mathutils type params (Vector, Euler, etc.) to also accept
Sequence[float], matching Blender's mathutils_array_parse C behavior
- Fix getset_descriptor readonly detection by probing __set__ on the
descriptor instead of checking fset (which doesn't exist on C descriptors)
- Accept int | slice keys in __getitem__/__setitem__/__delitem__
- Accept Sequence[element_type] values in __setitem__ for slice assignment
- Add mathutils overrides for Matrix.Translation and Matrix.Scale
- Extend apply_overrides to support ClassName.method_name keys
- Add conformance test files from Blender docs examples
- Disable reportUnusedExpression in conformance checks
Remaining known conformance issues:
- draw_handler_add missing from SpaceView3D
- Vector not nominally Sequence[float] (buffer protocol, swizzle setters)
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
- Add conformance test framework with poe conformance task
- Add test files for mathutils, bpy, and gpu API patterns
- Fix self param leaking into signatures from C method_descriptors
- Synthesize __iter__ for classes with __getitem__ but no explicit __iter__
- Add __iter__ runtime probing to discover Iterator[element_type]
- Add :raises to directive lookahead to fix rtype parsing
- Add 5.1 override for Matrix.Translation to accept Vector
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
- Introspect dunder methods (__getitem__, __len__, __add__, __matmul__, etc.)
on C extension classes with runtime probing for return types
- Discover hidden C types from property values (e.g. MatrixAccess from Matrix.col)
- Add gpu.types override for uniform_float to accept Matrix, Vector, Euler,
Quaternion, and Color (matching Blender's mathutils_array_parse C implementation)
- Extend apply_overrides to support ClassName.method_name keys for struct methods
- Parse standalone :type: annotations in property docstrings (is_frozen -> bool)
- Strip (readonly) and (never None) from docstring type annotations
- Add :raises to directive lookahead to prevent rtype bleeding into raises text
- Fix NoneType -> None normalization in runtime type probing
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>