Add rna_type/bl_rna, GeometrySet, bpy.ops typing, publish task, and README updates

- Add rna_type and bl_rna as readonly properties on bpy_struct (fixes fake-bpy-module#419)
- Discover non-RNA C classes in bpy.types like GeometrySet (fixes fake-bpy-module#436)
- Introspect bpy.ops operator wrapper with poll(), idname(), get_rna_type(), bl_options
- Handle builtin name shadowing (e.g. bpy.ops.object) with builtins. qualification
- Add poe publish task for building and publishing to PyPI
- Update project URLs to Gitea, improve generated README, add disclaimer
- Fix f-string lint warning and type annotation for introspect_class

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
This commit is contained in:
2026-03-26 15:07:35 +01:00
co-authored by Claude Opus 4.6
parent 852a5de700
commit 6ea41f3b4d
6 changed files with 253 additions and 22 deletions
+17 -3
View File
@@ -20,9 +20,9 @@ classifiers = [
dependencies = []
[project.urls]
Homepage = "https://github.com/autourdeminuit/blender-python-stubs"
Repository = "https://github.com/autourdeminuit/blender-python-stubs"
Issues = "https://github.com/autourdeminuit/blender-python-stubs/issues"
Homepage = "https://git.autourdeminuit.com/autour_de_minuit/blender-python-stubs"
Repository = "https://git.autourdeminuit.com/autour_de_minuit/blender-python-stubs"
Issues = "https://git.autourdeminuit.com/autour_de_minuit/blender-python-stubs/issues"
[tool.black]
target-version = ["py311"]
@@ -46,6 +46,20 @@ test = { cmd = "python -m unittest discover -s tests -v", help = "Run unit tests
cmd = "python -m main"
help = "Generate stubs for Blender versions (e.g., poe generate 5.0 4.3)"
[tool.poe.tasks.publish]
shell = "uv build dist/$version && uv publish dist/$version/dist/* --publish-url ${publish_url}"
help = "Build and publish stubs (e.g., poe publish 5.0)"
[tool.poe.tasks.publish.args.version]
positional = true
required = true
help = "Blender version to publish (e.g., 5.0)"
[tool.poe.tasks.publish.args.publish-url]
options = ["--publish-url"]
default = "https://test.pypi.org/legacy/"
help = "PyPI upload URL (defaults to Test PyPI)"
[tool.poe.tasks.check]
help = "Run all checks (format, lint, typecheck, test)"
sequence = ["format", "lint", "typecheck", "test", "typecheck-stubs"]