From b0c2a3a2c134155ddb83b0ff9389f06ea07290e2 Mon Sep 17 00:00:00 2001 From: Joseph HENRY Date: Thu, 26 Mar 2026 15:10:50 +0100 Subject: [PATCH] improve readme --- README.md | 3 +++ 1 file changed, 3 insertions(+) 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 |