diff --git a/README.md b/README.md index 6a42ac7..aeaba2f 100644 --- a/README.md +++ b/README.md @@ -56,6 +56,7 @@ gpu.state.blend_set('ALPHA') - **Literal enum types** — string parameters like `gpu.state.blend_set(mode)` use `Literal["NONE", "ALPHA", ...]` instead of plain `str` - **Docstrings** — inline documentation on properties, methods, and functions - **Classmethod detection** — `Matrix.Identity()`, `Vector.Fill()`, etc. correctly typed as `@classmethod` +- **Operator metadata** — `bpy.ops.mesh.primitive_cube_add.poll()`, `.idname()`, `.get_rna_type()`, and `.bl_options` are typed via introspected `_BPyOpsSubModOp` wrapper - **Dynamic array types** — `Image.pixels` typed as `bpy_prop_array[float]` (not `list[float]` or `float`) - **Zero `Any` usage** — precise types throughout, no `typing.Any` fallbacks - **basedpyright strict mode** — 0 errors on generated stubs (4.1+) @@ -81,6 +82,8 @@ The introspection data is then passed through a stub generator that handles type | `Any` usage | 0 | 1800+ | | Collection wrapper types | `BlendDataObjects` | `bpy_prop_collection[Object]` | | `bpy_struct` methods | Introspected | Missing | +| `rna_type` attribute | Yes | Missing | +| Operator metadata | `poll()`, `idname()`, etc. | Missing | | Constructor `__init__` | Yes (mathutils, gpu, etc.) | No | | Literal enum types | Yes | Yes (via stub_internal) | | Context members | ~100 typed | ~100 typed |