11 Commits

Author SHA1 Message Date
f4df542dd1 Clean up dead code, fix type errors, and add publish workflow
Remove unused _append_ops_call_method, fix _property_data_from_member
call signature, replace sys.version_info guard with hasattr check for
__buffer__ protocol, fix implicit string concatenations, add msgbus
overrides for 4.0-4.4, add conformance tests, and add publish script.

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-04-03 11:07:52 +02:00
fe6deadfc7 Add overrides to all versions and fix 4.3 temp_override hang
- 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>
2026-04-02 10:41:25 +02:00
a6f70f776f Add bpy.msgbus key override for 4.5
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-04-01 18:47:41 +02:00
49b68236a7 Add bpy.msgbus key override for 5.0
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-04-01 18:46:30 +02:00
5472557466 Widen bpy.msgbus key param to accept any RNA-backed object
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>
2026-04-01 18:40:46 +02:00
35a370a412 Map RNA float array properties to mathutils types using subtype
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>
2026-03-31 17:32:24 +02:00
b3b282d8b0 Fix all conformance test failures
- Discover C-level classmethods on RNA types (e.g. Space.draw_handler_add)
- Fix getset_descriptor writability detection via __set__ probing
- Widen writable mathutils properties to accept Sequence[float]
- Widen __setitem__ value to accept parent container type (vec[:] = Vector)
- Widen mathutils params (Vector, Euler, etc.) to also accept Sequence[float]
- Filter self param from C method_descriptor signatures
- Add 5.1 overrides for LocRotScale and Quaternion.__init__
- Comment out memoryview tests (buffer protocol requires Python 3.12+)
- Disable reportUnusedExpression and reportUnknownMemberType in conformance

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-03-26 18:29:28 +01:00
c2876bc184 Widen mathutils param types, fix getset_descriptor writability, add conformance tests
- 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>
2026-03-26 18:06:11 +01:00
9fa2f1c200 Add conformance tests and fix introspection issues
- 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>
2026-03-26 17:45:01 +01:00
e4739448c2 Add dunder methods, hidden type discovery, uniform_float override, and docstring fixes
- 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>
2026-03-26 17:18:09 +01:00
852a5de700 Initial commit
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-03-26 13:00:51 +01:00