fake-bpy-module 20240516__py3-none-any.whl → 20240517__py3-none-any.whl

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.

Potentially problematic release.


This version of fake-bpy-module might be problematic. Click here for more details.

Files changed (533) hide show
  1. _bpy_internal/freedesktop/__init__.pyi +2 -2
  2. addon_utils/__init__.pyi +43 -12
  3. animsys_refactor/__init__.pyi +4 -4
  4. aud/__init__.pyi +7 -7
  5. bgl/__init__.pyi +121 -183
  6. bl_app_override/__init__.pyi +5 -5
  7. bl_app_override/helpers/__init__.pyi +3 -1
  8. bl_app_template_utils/__init__.pyi +5 -5
  9. bl_console_utils/autocomplete/complete_calltip/__init__.pyi +48 -10
  10. bl_console_utils/autocomplete/complete_import/__init__.pyi +27 -6
  11. bl_console_utils/autocomplete/complete_namespace/__init__.pyi +40 -8
  12. bl_console_utils/autocomplete/intellisense/__init__.pyi +31 -4
  13. bl_i18n_utils/bl_extract_messages/__init__.pyi +5 -5
  14. bl_i18n_utils/settings/__init__.pyi +4 -2
  15. bl_i18n_utils/utils/__init__.pyi +86 -58
  16. bl_i18n_utils/utils_rtl/__init__.pyi +8 -2
  17. bl_keymap_utils/io/__init__.pyi +4 -4
  18. bl_keymap_utils/keymap_from_toolbar/__init__.pyi +2 -2
  19. bl_keymap_utils/platform_helpers/__init__.pyi +2 -2
  20. bl_operators/add_mesh_torus/__init__.pyi +126 -41
  21. bl_operators/anim/__init__.pyi +1001 -328
  22. bl_operators/assets/__init__.pyi +376 -123
  23. bl_operators/bmesh/find_adjacent/__init__.pyi +3 -3
  24. bl_operators/clip/__init__.pyi +1250 -409
  25. bl_operators/console/__init__.pyi +626 -205
  26. bl_operators/constraint/__init__.pyi +502 -165
  27. bl_operators/file/__init__.pyi +376 -123
  28. bl_operators/freestyle/__init__.pyi +501 -164
  29. bl_operators/geometry_nodes/__init__.pyi +501 -164
  30. bl_operators/image/__init__.pyi +621 -200
  31. bl_operators/mesh/__init__.pyi +376 -123
  32. bl_operators/node/__init__.pyi +1243 -402
  33. bl_operators/object/__init__.pyi +1876 -615
  34. bl_operators/object_align/__init__.pyi +126 -41
  35. bl_operators/object_quick_effects/__init__.pyi +502 -165
  36. bl_operators/object_randomize_transform/__init__.pyi +126 -41
  37. bl_operators/presets/__init__.pyi +3069 -1027
  38. bl_operators/rigidbody/__init__.pyi +376 -123
  39. bl_operators/screen_play_rendered_anim/__init__.pyi +126 -41
  40. bl_operators/sequencer/__init__.pyi +1009 -331
  41. bl_operators/spreadsheet/__init__.pyi +126 -41
  42. bl_operators/userpref/__init__.pyi +3263 -1078
  43. bl_operators/uvcalc_follow_active/__init__.pyi +126 -41
  44. bl_operators/uvcalc_lightmap/__init__.pyi +137 -47
  45. bl_operators/uvcalc_transform/__init__.pyi +289 -90
  46. bl_operators/vertexpaint_dirt/__init__.pyi +126 -41
  47. bl_operators/view3d/__init__.pyi +868 -279
  48. bl_operators/wm/__init__.pyi +5777 -1934
  49. bl_operators/world/__init__.pyi +126 -41
  50. bl_previews_utils/bl_previews_render/__init__.pyi +1 -1
  51. bl_rna_utils/data_path/__init__.pyi +8 -3
  52. bl_ui/__init__.pyi +338 -131
  53. bl_ui/anim/__init__.pyi +164 -64
  54. bl_ui/asset_shelf/__init__.pyi +129 -42
  55. bl_ui/generic_ui_list/__init__.pyi +412 -135
  56. bl_ui/node_add_menu/__init__.pyi +168 -68
  57. bl_ui/node_add_menu_compositor/__init__.pyi +2921 -1138
  58. bl_ui/node_add_menu_geometry/__init__.pyi +7785 -3032
  59. bl_ui/node_add_menu_shader/__init__.pyi +1621 -630
  60. bl_ui/node_add_menu_texture/__init__.pyi +1459 -567
  61. bl_ui/properties_animviz/__init__.pyi +2 -2
  62. bl_ui/properties_collection/__init__.pyi +806 -274
  63. bl_ui/properties_constraint/__init__.pyi +10253 -3458
  64. bl_ui/properties_data_armature/__init__.pyi +1615 -552
  65. bl_ui/properties_data_bone/__init__.pyi +1288 -425
  66. bl_ui/properties_data_camera/__init__.pyi +1854 -631
  67. bl_ui/properties_data_curve/__init__.pyi +1929 -636
  68. bl_ui/properties_data_curves/__init__.pyi +806 -274
  69. bl_ui/properties_data_empty/__init__.pyi +257 -84
  70. bl_ui/properties_data_gpencil/__init__.pyi +2380 -803
  71. bl_ui/properties_data_grease_pencil/__init__.pyi +1902 -656
  72. bl_ui/properties_data_lattice/__init__.pyi +388 -127
  73. bl_ui/properties_data_light/__init__.pyi +1541 -506
  74. bl_ui/properties_data_lightprobe/__init__.pyi +1667 -548
  75. bl_ui/properties_data_mesh/__init__.pyi +2704 -929
  76. bl_ui/properties_data_metaball/__init__.pyi +644 -211
  77. bl_ui/properties_data_modifier/__init__.pyi +1353 -502
  78. bl_ui/properties_data_pointcloud/__init__.pyi +679 -233
  79. bl_ui/properties_data_shaderfx/__init__.pyi +129 -42
  80. bl_ui/properties_data_speaker/__init__.pyi +644 -211
  81. bl_ui/properties_data_volume/__init__.pyi +1030 -339
  82. bl_ui/properties_freestyle/__init__.pyi +3113 -1035
  83. bl_ui/properties_grease_pencil_common/__init__.pyi +2464 -933
  84. bl_ui/properties_mask_common/__init__.pyi +1101 -420
  85. bl_ui/properties_material/__init__.pyi +2091 -699
  86. bl_ui/properties_material_gpencil/__init__.pyi +1350 -466
  87. bl_ui/properties_object/__init__.pyi +1838 -618
  88. bl_ui/properties_output/__init__.pyi +2414 -831
  89. bl_ui/properties_paint_common/__init__.pyi +412 -289
  90. bl_ui/properties_particle/__init__.pyi +6737 -2241
  91. bl_ui/properties_physics_cloth/__init__.pyi +1825 -612
  92. bl_ui/properties_physics_common/__init__.pyi +129 -42
  93. bl_ui/properties_physics_dynamicpaint/__init__.pyi +2821 -928
  94. bl_ui/properties_physics_field/__init__.pyi +1283 -422
  95. bl_ui/properties_physics_fluid/__init__.pyi +3620 -1203
  96. bl_ui/properties_physics_geometry_nodes/__init__.pyi +129 -42
  97. bl_ui/properties_physics_rigidbody/__init__.pyi +1027 -338
  98. bl_ui/properties_physics_rigidbody_constraint/__init__.pyi +1667 -548
  99. bl_ui/properties_physics_softbody/__init__.pyi +1924 -633
  100. bl_ui/properties_render/__init__.pyi +6830 -2263
  101. bl_ui/properties_scene/__init__.pyi +1929 -636
  102. bl_ui/properties_texture/__init__.pyi +3370 -1118
  103. bl_ui/properties_view_layer/__init__.pyi +2346 -782
  104. bl_ui/properties_workspace/__init__.pyi +516 -169
  105. bl_ui/properties_world/__init__.pyi +1284 -421
  106. bl_ui/space_clip/__init__.pyi +10134 -3639
  107. bl_ui/space_console/__init__.pyi +939 -357
  108. bl_ui/space_dopesheet/__init__.pyi +4327 -1562
  109. bl_ui/space_filebrowser/__init__.pyi +4164 -1499
  110. bl_ui/space_graph/__init__.pyi +3108 -1179
  111. bl_ui/space_image/__init__.pyi +9766 -3596
  112. bl_ui/space_info/__init__.pyi +939 -357
  113. bl_ui/space_nla/__init__.pyi +2620 -988
  114. bl_ui/space_node/__init__.pyi +3994 -1434
  115. bl_ui/space_outliner/__init__.pyi +2203 -842
  116. bl_ui/space_properties/__init__.pyi +386 -127
  117. bl_ui/space_sequencer/__init__.pyi +10773 -3878
  118. bl_ui/space_spreadsheet/__init__.pyi +130 -43
  119. bl_ui/space_statusbar/__init__.pyi +129 -42
  120. bl_ui/space_text/__init__.pyi +2458 -925
  121. bl_ui/space_time/__init__.pyi +1033 -378
  122. bl_ui/space_toolsystem_common/__init__.pyi +20 -16
  123. bl_ui/space_toolsystem_toolbar/__init__.pyi +37 -21
  124. bl_ui/space_topbar/__init__.pyi +3980 -1496
  125. bl_ui/space_userpref/__init__.pyi +11373 -3797
  126. bl_ui/space_view3d/__init__.pyi +40865 -15356
  127. bl_ui/space_view3d_toolbar/__init__.pyi +12520 -4647
  128. bl_ui/temp_anim_layers/__init__.pyi +129 -42
  129. bl_ui/utils/__init__.pyi +28 -20
  130. bl_ui_utils/bug_report_url/__init__.pyi +1 -1
  131. bl_ui_utils/layout/__init__.pyi +1 -1
  132. blend_render_info/__init__.pyi +1 -1
  133. blf/__init__.pyi +4 -4
  134. bmesh/geometry/__init__.pyi +2 -3
  135. bmesh/ops/__init__.pyi +372 -419
  136. bmesh/types/__init__.pyi +38 -38
  137. bmesh/utils/__init__.pyi +10 -13
  138. bpy/app/__init__.pyi +4 -4
  139. bpy/app/handlers/__init__.pyi +36 -36
  140. bpy/app/icons/__init__.pyi +8 -8
  141. bpy/app/timers/__init__.pyi +10 -10
  142. bpy/app/translations/__init__.pyi +20 -22
  143. bpy/msgbus/__init__.pyi +2 -4
  144. bpy/ops/action/__init__.pyi +316 -394
  145. bpy/ops/anim/__init__.pyi +442 -548
  146. bpy/ops/armature/__init__.pyi +374 -470
  147. bpy/ops/asset/__init__.pyi +152 -184
  148. bpy/ops/bl_pkg/__init__.pyi +221 -272
  149. bpy/ops/boid/__init__.pyi +50 -66
  150. bpy/ops/brush/__init__.pyi +72 -90
  151. bpy/ops/buttons/__init__.pyi +132 -144
  152. bpy/ops/cachefile/__init__.pyi +128 -138
  153. bpy/ops/camera/__init__.pyi +26 -30
  154. bpy/ops/clip/__init__.pyi +777 -964
  155. bpy/ops/cloth/__init__.pyi +12 -14
  156. bpy/ops/collection/__init__.pyi +68 -86
  157. bpy/ops/console/__init__.pyi +158 -200
  158. bpy/ops/constraint/__init__.pyi +178 -214
  159. bpy/ops/curve/__init__.pyi +473 -576
  160. bpy/ops/curves/__init__.pyi +247 -302
  161. bpy/ops/cycles/__init__.pyi +28 -34
  162. bpy/ops/dpaint/__init__.pyi +34 -44
  163. bpy/ops/ed/__init__.pyi +126 -150
  164. bpy/ops/export_anim/__init__.pyi +22 -24
  165. bpy/ops/export_scene/__init__.pyi +302 -336
  166. bpy/ops/file/__init__.pyi +352 -432
  167. bpy/ops/fluid/__init__.pyi +90 -118
  168. bpy/ops/font/__init__.pyi +258 -304
  169. bpy/ops/geometry/__init__.pyi +100 -120
  170. bpy/ops/gizmogroup/__init__.pyi +22 -26
  171. bpy/ops/gpencil/__init__.pyi +1469 -1778
  172. bpy/ops/graph/__init__.pyi +644 -776
  173. bpy/ops/grease_pencil/__init__.pyi +597 -748
  174. bpy/ops/image/__init__.pyi +648 -744
  175. bpy/ops/import_anim/__init__.pyi +30 -32
  176. bpy/ops/import_curve/__init__.pyi +10 -12
  177. bpy/ops/import_scene/__init__.pyi +88 -96
  178. bpy/ops/info/__init__.pyi +60 -74
  179. bpy/ops/lattice/__init__.pyi +64 -80
  180. bpy/ops/marker/__init__.pyi +108 -130
  181. bpy/ops/mask/__init__.pyi +322 -402
  182. bpy/ops/material/__init__.pyi +18 -24
  183. bpy/ops/mball/__init__.pyi +70 -86
  184. bpy/ops/mesh/__init__.pyi +1986 -2322
  185. bpy/ops/nla/__init__.pyi +333 -411
  186. bpy/ops/node/__init__.pyi +886 -1100
  187. bpy/ops/object/__init__.pyi +2585 -3078
  188. bpy/ops/outliner/__init__.pyi +498 -636
  189. bpy/ops/paint/__init__.pyi +565 -680
  190. bpy/ops/paintcurve/__init__.pyi +64 -80
  191. bpy/ops/palette/__init__.pyi +50 -64
  192. bpy/ops/particle/__init__.pyi +267 -340
  193. bpy/ops/pose/__init__.pyi +336 -414
  194. bpy/ops/poselib/__init__.pyi +72 -90
  195. bpy/ops/preferences/__init__.pyi +386 -463
  196. bpy/ops/ptcache/__init__.pyi +46 -60
  197. bpy/ops/render/__init__.pyi +130 -154
  198. bpy/ops/rigidbody/__init__.pyi +102 -128
  199. bpy/ops/scene/__init__.pyi +280 -358
  200. bpy/ops/screen/__init__.pyi +382 -460
  201. bpy/ops/script/__init__.pyi +24 -30
  202. bpy/ops/sculpt/__init__.pyi +458 -532
  203. bpy/ops/sculpt_curves/__init__.pyi +41 -50
  204. bpy/ops/sequencer/__init__.pyi +1066 -1244
  205. bpy/ops/sound/__init__.pyi +216 -230
  206. bpy/ops/spreadsheet/__init__.pyi +30 -38
  207. bpy/ops/surface/__init__.pyi +108 -120
  208. bpy/ops/text/__init__.pyi +390 -476
  209. bpy/ops/text_editor/__init__.pyi +12 -14
  210. bpy/ops/texture/__init__.pyi +26 -34
  211. bpy/ops/transform/__init__.pyi +792 -878
  212. bpy/ops/ui/__init__.pyi +228 -294
  213. bpy/ops/uilist/__init__.pyi +32 -38
  214. bpy/ops/uv/__init__.pyi +602 -704
  215. bpy/ops/view2d/__init__.pyi +156 -184
  216. bpy/ops/view3d/__init__.pyi +582 -718
  217. bpy/ops/wm/__init__.pyi +2680 -2928
  218. bpy/ops/workspace/__init__.pyi +46 -60
  219. bpy/ops/world/__init__.pyi +12 -16
  220. bpy/path/__init__.pyi +179 -75
  221. bpy/props/__init__.pyi +261 -263
  222. bpy/types/__init__.pyi +17056 -21951
  223. bpy/utils/__init__.pyi +242 -118
  224. bpy/utils/previews/__init__.pyi +58 -28
  225. bpy/utils/units/__init__.pyi +20 -20
  226. bpy_extras/anim_utils/__init__.pyi +68 -28
  227. bpy_extras/bmesh_utils/__init__.pyi +8 -2
  228. bpy_extras/extensions/junction_module/__init__.pyi +5 -2
  229. bpy_extras/id_map_utils/__init__.pyi +3 -3
  230. bpy_extras/image_utils/__init__.pyi +44 -11
  231. bpy_extras/io_utils/__init__.pyi +113 -18
  232. bpy_extras/keyconfig_utils/__init__.pyi +2 -2
  233. bpy_extras/mesh_utils/__init__.pyi +71 -19
  234. bpy_extras/node_shader_utils/__init__.pyi +9 -4
  235. bpy_extras/node_utils/__init__.pyi +9 -2
  236. bpy_extras/object_utils/__init__.pyi +71 -12
  237. bpy_extras/view3d_utils/__init__.pyi +80 -10
  238. bpy_extras/wm_utils/progress_report/__init__.pyi +13 -10
  239. bpy_types/__init__.pyi +4197 -1333
  240. console_python/__init__.pyi +6 -1
  241. {fake_bpy_module-20240516.dist-info → fake_bpy_module-20240517.dist-info}/METADATA +1 -1
  242. fake_bpy_module-20240517.dist-info/RECORD +353 -0
  243. freestyle/chainingiterators/__init__.pyi +4 -4
  244. freestyle/shaders/__init__.pyi +2 -2
  245. freestyle/types/__init__.pyi +84 -96
  246. freestyle/utils/ContextFunctions/__init__.pyi +2 -2
  247. freestyle/utils/__init__.pyi +3 -3
  248. gpu/matrix/__init__.pyi +6 -8
  249. gpu/state/__init__.pyi +2 -2
  250. gpu/types/__init__.pyi +12 -12
  251. gpu_extras/presets/__init__.pyi +2 -5
  252. graphviz_export/__init__.pyi +4 -2
  253. idprop/types/__init__.pyi +2 -2
  254. imbuf/__init__.pyi +4 -4
  255. keyingsets_builtins/__init__.pyi +2688 -839
  256. mathutils/__init__.pyi +194 -238
  257. mathutils/bvhtree/__init__.pyi +4 -4
  258. mathutils/geometry/__init__.pyi +153 -155
  259. mathutils/kdtree/__init__.pyi +8 -12
  260. mathutils/noise/__init__.pyi +26 -26
  261. nodeitems_utils/__init__.pyi +1 -1
  262. rna_info/__init__.pyi +17 -15
  263. rna_keymap_ui/__init__.pyi +1 -1
  264. rna_prop_ui/__init__.pyi +16 -14
  265. rna_xml/__init__.pyi +12 -12
  266. _bpy_internal/freedesktop/py.typed +0 -0
  267. bl_app_override/helpers/py.typed +0 -0
  268. bl_console_utils/autocomplete/complete_calltip/py.typed +0 -0
  269. bl_console_utils/autocomplete/complete_import/py.typed +0 -0
  270. bl_console_utils/autocomplete/complete_namespace/py.typed +0 -0
  271. bl_console_utils/autocomplete/intellisense/py.typed +0 -0
  272. bl_console_utils/autocomplete/py.typed +0 -0
  273. bl_i18n_utils/bl_extract_messages/py.typed +0 -0
  274. bl_i18n_utils/merge_po/py.typed +0 -0
  275. bl_i18n_utils/settings/py.typed +0 -0
  276. bl_i18n_utils/utils/py.typed +0 -0
  277. bl_i18n_utils/utils_cli/py.typed +0 -0
  278. bl_i18n_utils/utils_languages_menu/py.typed +0 -0
  279. bl_i18n_utils/utils_rtl/py.typed +0 -0
  280. bl_keymap_utils/io/py.typed +0 -0
  281. bl_keymap_utils/keymap_from_toolbar/py.typed +0 -0
  282. bl_keymap_utils/keymap_hierarchy/py.typed +0 -0
  283. bl_keymap_utils/platform_helpers/py.typed +0 -0
  284. bl_keymap_utils/versioning/py.typed +0 -0
  285. bl_operators/add_mesh_torus/py.typed +0 -0
  286. bl_operators/anim/py.typed +0 -0
  287. bl_operators/assets/py.typed +0 -0
  288. bl_operators/bmesh/find_adjacent/py.typed +0 -0
  289. bl_operators/bmesh/py.typed +0 -0
  290. bl_operators/clip/py.typed +0 -0
  291. bl_operators/console/py.typed +0 -0
  292. bl_operators/constraint/py.typed +0 -0
  293. bl_operators/file/py.typed +0 -0
  294. bl_operators/freestyle/py.typed +0 -0
  295. bl_operators/geometry_nodes/py.typed +0 -0
  296. bl_operators/image/py.typed +0 -0
  297. bl_operators/mesh/py.typed +0 -0
  298. bl_operators/node/py.typed +0 -0
  299. bl_operators/object/py.typed +0 -0
  300. bl_operators/object_align/py.typed +0 -0
  301. bl_operators/object_quick_effects/py.typed +0 -0
  302. bl_operators/object_randomize_transform/py.typed +0 -0
  303. bl_operators/presets/py.typed +0 -0
  304. bl_operators/rigidbody/py.typed +0 -0
  305. bl_operators/screen_play_rendered_anim/py.typed +0 -0
  306. bl_operators/sequencer/py.typed +0 -0
  307. bl_operators/spreadsheet/py.typed +0 -0
  308. bl_operators/userpref/py.typed +0 -0
  309. bl_operators/uvcalc_follow_active/py.typed +0 -0
  310. bl_operators/uvcalc_lightmap/py.typed +0 -0
  311. bl_operators/uvcalc_transform/py.typed +0 -0
  312. bl_operators/vertexpaint_dirt/py.typed +0 -0
  313. bl_operators/view3d/py.typed +0 -0
  314. bl_operators/wm/py.typed +0 -0
  315. bl_operators/world/py.typed +0 -0
  316. bl_previews_utils/bl_previews_render/py.typed +0 -0
  317. bl_rna_utils/data_path/py.typed +0 -0
  318. bl_text_utils/external_editor/py.typed +0 -0
  319. bl_ui/anim/py.typed +0 -0
  320. bl_ui/asset_shelf/py.typed +0 -0
  321. bl_ui/generic_ui_list/py.typed +0 -0
  322. bl_ui/node_add_menu/py.typed +0 -0
  323. bl_ui/node_add_menu_compositor/py.typed +0 -0
  324. bl_ui/node_add_menu_geometry/py.typed +0 -0
  325. bl_ui/node_add_menu_shader/py.typed +0 -0
  326. bl_ui/node_add_menu_texture/py.typed +0 -0
  327. bl_ui/properties_animviz/py.typed +0 -0
  328. bl_ui/properties_collection/py.typed +0 -0
  329. bl_ui/properties_constraint/py.typed +0 -0
  330. bl_ui/properties_data_armature/py.typed +0 -0
  331. bl_ui/properties_data_bone/py.typed +0 -0
  332. bl_ui/properties_data_camera/py.typed +0 -0
  333. bl_ui/properties_data_curve/py.typed +0 -0
  334. bl_ui/properties_data_curves/py.typed +0 -0
  335. bl_ui/properties_data_empty/py.typed +0 -0
  336. bl_ui/properties_data_gpencil/py.typed +0 -0
  337. bl_ui/properties_data_grease_pencil/py.typed +0 -0
  338. bl_ui/properties_data_lattice/py.typed +0 -0
  339. bl_ui/properties_data_light/py.typed +0 -0
  340. bl_ui/properties_data_lightprobe/py.typed +0 -0
  341. bl_ui/properties_data_mesh/py.typed +0 -0
  342. bl_ui/properties_data_metaball/py.typed +0 -0
  343. bl_ui/properties_data_modifier/py.typed +0 -0
  344. bl_ui/properties_data_pointcloud/py.typed +0 -0
  345. bl_ui/properties_data_shaderfx/py.typed +0 -0
  346. bl_ui/properties_data_speaker/py.typed +0 -0
  347. bl_ui/properties_data_volume/py.typed +0 -0
  348. bl_ui/properties_freestyle/py.typed +0 -0
  349. bl_ui/properties_grease_pencil_common/py.typed +0 -0
  350. bl_ui/properties_mask_common/py.typed +0 -0
  351. bl_ui/properties_material/py.typed +0 -0
  352. bl_ui/properties_material_gpencil/py.typed +0 -0
  353. bl_ui/properties_object/py.typed +0 -0
  354. bl_ui/properties_output/py.typed +0 -0
  355. bl_ui/properties_paint_common/py.typed +0 -0
  356. bl_ui/properties_particle/py.typed +0 -0
  357. bl_ui/properties_physics_cloth/py.typed +0 -0
  358. bl_ui/properties_physics_common/py.typed +0 -0
  359. bl_ui/properties_physics_dynamicpaint/py.typed +0 -0
  360. bl_ui/properties_physics_field/py.typed +0 -0
  361. bl_ui/properties_physics_fluid/py.typed +0 -0
  362. bl_ui/properties_physics_geometry_nodes/py.typed +0 -0
  363. bl_ui/properties_physics_rigidbody/py.typed +0 -0
  364. bl_ui/properties_physics_rigidbody_constraint/py.typed +0 -0
  365. bl_ui/properties_physics_softbody/py.typed +0 -0
  366. bl_ui/properties_render/py.typed +0 -0
  367. bl_ui/properties_scene/py.typed +0 -0
  368. bl_ui/properties_texture/py.typed +0 -0
  369. bl_ui/properties_view_layer/py.typed +0 -0
  370. bl_ui/properties_workspace/py.typed +0 -0
  371. bl_ui/properties_world/py.typed +0 -0
  372. bl_ui/space_clip/py.typed +0 -0
  373. bl_ui/space_console/py.typed +0 -0
  374. bl_ui/space_dopesheet/py.typed +0 -0
  375. bl_ui/space_filebrowser/py.typed +0 -0
  376. bl_ui/space_graph/py.typed +0 -0
  377. bl_ui/space_image/py.typed +0 -0
  378. bl_ui/space_info/py.typed +0 -0
  379. bl_ui/space_nla/py.typed +0 -0
  380. bl_ui/space_node/py.typed +0 -0
  381. bl_ui/space_outliner/py.typed +0 -0
  382. bl_ui/space_properties/py.typed +0 -0
  383. bl_ui/space_sequencer/py.typed +0 -0
  384. bl_ui/space_spreadsheet/py.typed +0 -0
  385. bl_ui/space_statusbar/py.typed +0 -0
  386. bl_ui/space_text/py.typed +0 -0
  387. bl_ui/space_time/py.typed +0 -0
  388. bl_ui/space_toolsystem_common/py.typed +0 -0
  389. bl_ui/space_toolsystem_toolbar/py.typed +0 -0
  390. bl_ui/space_topbar/py.typed +0 -0
  391. bl_ui/space_userpref/py.typed +0 -0
  392. bl_ui/space_view3d/py.typed +0 -0
  393. bl_ui/space_view3d_toolbar/py.typed +0 -0
  394. bl_ui/temp_anim_layers/py.typed +0 -0
  395. bl_ui/utils/py.typed +0 -0
  396. bl_ui_utils/bug_report_url/py.typed +0 -0
  397. bl_ui_utils/layout/py.typed +0 -0
  398. bmesh/geometry/py.typed +0 -0
  399. bmesh/ops/py.typed +0 -0
  400. bmesh/types/py.typed +0 -0
  401. bmesh/utils/py.typed +0 -0
  402. bpy/app/handlers/py.typed +0 -0
  403. bpy/app/icons/py.typed +0 -0
  404. bpy/app/py.typed +0 -0
  405. bpy/app/timers/py.typed +0 -0
  406. bpy/app/translations/py.typed +0 -0
  407. bpy/msgbus/py.typed +0 -0
  408. bpy/ops/action/py.typed +0 -0
  409. bpy/ops/anim/py.typed +0 -0
  410. bpy/ops/armature/py.typed +0 -0
  411. bpy/ops/asset/py.typed +0 -0
  412. bpy/ops/bl_pkg/py.typed +0 -0
  413. bpy/ops/boid/py.typed +0 -0
  414. bpy/ops/brush/py.typed +0 -0
  415. bpy/ops/buttons/py.typed +0 -0
  416. bpy/ops/cachefile/py.typed +0 -0
  417. bpy/ops/camera/py.typed +0 -0
  418. bpy/ops/clip/py.typed +0 -0
  419. bpy/ops/cloth/py.typed +0 -0
  420. bpy/ops/collection/py.typed +0 -0
  421. bpy/ops/console/py.typed +0 -0
  422. bpy/ops/constraint/py.typed +0 -0
  423. bpy/ops/curve/py.typed +0 -0
  424. bpy/ops/curves/py.typed +0 -0
  425. bpy/ops/cycles/py.typed +0 -0
  426. bpy/ops/dpaint/py.typed +0 -0
  427. bpy/ops/ed/py.typed +0 -0
  428. bpy/ops/export_anim/py.typed +0 -0
  429. bpy/ops/export_scene/py.typed +0 -0
  430. bpy/ops/file/py.typed +0 -0
  431. bpy/ops/fluid/py.typed +0 -0
  432. bpy/ops/font/py.typed +0 -0
  433. bpy/ops/geometry/py.typed +0 -0
  434. bpy/ops/gizmogroup/py.typed +0 -0
  435. bpy/ops/gpencil/py.typed +0 -0
  436. bpy/ops/graph/py.typed +0 -0
  437. bpy/ops/grease_pencil/py.typed +0 -0
  438. bpy/ops/image/py.typed +0 -0
  439. bpy/ops/import_anim/py.typed +0 -0
  440. bpy/ops/import_curve/py.typed +0 -0
  441. bpy/ops/import_scene/py.typed +0 -0
  442. bpy/ops/info/py.typed +0 -0
  443. bpy/ops/lattice/py.typed +0 -0
  444. bpy/ops/marker/py.typed +0 -0
  445. bpy/ops/mask/py.typed +0 -0
  446. bpy/ops/material/py.typed +0 -0
  447. bpy/ops/mball/py.typed +0 -0
  448. bpy/ops/mesh/py.typed +0 -0
  449. bpy/ops/nla/py.typed +0 -0
  450. bpy/ops/node/py.typed +0 -0
  451. bpy/ops/object/py.typed +0 -0
  452. bpy/ops/outliner/py.typed +0 -0
  453. bpy/ops/paint/py.typed +0 -0
  454. bpy/ops/paintcurve/py.typed +0 -0
  455. bpy/ops/palette/py.typed +0 -0
  456. bpy/ops/particle/py.typed +0 -0
  457. bpy/ops/pose/py.typed +0 -0
  458. bpy/ops/poselib/py.typed +0 -0
  459. bpy/ops/preferences/py.typed +0 -0
  460. bpy/ops/ptcache/py.typed +0 -0
  461. bpy/ops/py.typed +0 -0
  462. bpy/ops/render/py.typed +0 -0
  463. bpy/ops/rigidbody/py.typed +0 -0
  464. bpy/ops/scene/py.typed +0 -0
  465. bpy/ops/screen/py.typed +0 -0
  466. bpy/ops/script/py.typed +0 -0
  467. bpy/ops/sculpt/py.typed +0 -0
  468. bpy/ops/sculpt_curves/py.typed +0 -0
  469. bpy/ops/sequencer/py.typed +0 -0
  470. bpy/ops/sound/py.typed +0 -0
  471. bpy/ops/spreadsheet/py.typed +0 -0
  472. bpy/ops/surface/py.typed +0 -0
  473. bpy/ops/text/py.typed +0 -0
  474. bpy/ops/text_editor/py.typed +0 -0
  475. bpy/ops/texture/py.typed +0 -0
  476. bpy/ops/transform/py.typed +0 -0
  477. bpy/ops/ui/py.typed +0 -0
  478. bpy/ops/uilist/py.typed +0 -0
  479. bpy/ops/uv/py.typed +0 -0
  480. bpy/ops/view2d/py.typed +0 -0
  481. bpy/ops/view3d/py.typed +0 -0
  482. bpy/ops/wm/py.typed +0 -0
  483. bpy/ops/workspace/py.typed +0 -0
  484. bpy/ops/world/py.typed +0 -0
  485. bpy/path/py.typed +0 -0
  486. bpy/props/py.typed +0 -0
  487. bpy/types/py.typed +0 -0
  488. bpy/utils/previews/py.typed +0 -0
  489. bpy/utils/py.typed +0 -0
  490. bpy/utils/units/py.typed +0 -0
  491. bpy_extras/anim_utils/py.typed +0 -0
  492. bpy_extras/asset_utils/py.typed +0 -0
  493. bpy_extras/bmesh_utils/py.typed +0 -0
  494. bpy_extras/extensions/junction_module/py.typed +0 -0
  495. bpy_extras/extensions/py.typed +0 -0
  496. bpy_extras/id_map_utils/py.typed +0 -0
  497. bpy_extras/image_utils/py.typed +0 -0
  498. bpy_extras/io_utils/py.typed +0 -0
  499. bpy_extras/keyconfig_utils/py.typed +0 -0
  500. bpy_extras/mesh_utils/py.typed +0 -0
  501. bpy_extras/node_shader_utils/py.typed +0 -0
  502. bpy_extras/node_utils/py.typed +0 -0
  503. bpy_extras/object_utils/py.typed +0 -0
  504. bpy_extras/view3d_utils/py.typed +0 -0
  505. bpy_extras/wm_utils/progress_report/py.typed +0 -0
  506. bpy_extras/wm_utils/py.typed +0 -0
  507. fake_bpy_module-20240516.dist-info/RECORD +0 -618
  508. freestyle/chainingiterators/py.typed +0 -0
  509. freestyle/functions/py.typed +0 -0
  510. freestyle/predicates/py.typed +0 -0
  511. freestyle/shaders/py.typed +0 -0
  512. freestyle/types/py.typed +0 -0
  513. freestyle/utils/ContextFunctions/py.typed +0 -0
  514. freestyle/utils/py.typed +0 -0
  515. gpu/capabilities/py.typed +0 -0
  516. gpu/matrix/py.typed +0 -0
  517. gpu/platform/py.typed +0 -0
  518. gpu/select/py.typed +0 -0
  519. gpu/shader/py.typed +0 -0
  520. gpu/state/py.typed +0 -0
  521. gpu/texture/py.typed +0 -0
  522. gpu/types/py.typed +0 -0
  523. gpu_extras/batch/py.typed +0 -0
  524. gpu_extras/presets/py.typed +0 -0
  525. idprop/types/py.typed +0 -0
  526. imbuf/types/py.typed +0 -0
  527. mathutils/bvhtree/py.typed +0 -0
  528. mathutils/geometry/py.typed +0 -0
  529. mathutils/interpolate/py.typed +0 -0
  530. mathutils/kdtree/py.typed +0 -0
  531. mathutils/noise/py.typed +0 -0
  532. {fake_bpy_module-20240516.dist-info → fake_bpy_module-20240517.dist-info}/WHEEL +0 -0
  533. {fake_bpy_module-20240516.dist-info → fake_bpy_module-20240517.dist-info}/top_level.txt +0 -0
bmesh/ops/__init__.pyi CHANGED
@@ -20,9 +20,7 @@ import mathutils
20
20
 
21
21
  GenericType = typing.TypeVar("GenericType")
22
22
 
23
- def average_vert_facedata(
24
- bm: bmesh.types.BMesh, verts: typing.List[bmesh.types.BMVert] = []
25
- ):
23
+ def average_vert_facedata(bm: bmesh.types.BMesh, verts: list[bmesh.types.BMVert] = []):
26
24
  """Average Vertices Face-vert Data.Merge uv/vcols associated with the input vertices at
27
25
  the bounding box center. (I know, it's not averaging but
28
26
  the vert_snap_to_bb_center is just too long).
@@ -30,82 +28,80 @@ def average_vert_facedata(
30
28
  :param bm: The bmesh to operate on.
31
29
  :type bm: bmesh.types.BMesh
32
30
  :param verts: input vertices
33
- :type verts: typing.List[bmesh.types.BMVert]
31
+ :type verts: list[bmesh.types.BMVert]
34
32
  """
35
33
 
36
34
  ...
37
35
 
38
36
  def beautify_fill(
39
37
  bm: bmesh.types.BMesh,
40
- faces: typing.List[bmesh.types.BMFace] = [],
41
- edges: typing.List[bmesh.types.BMEdge] = [],
38
+ faces: list[bmesh.types.BMFace] = [],
39
+ edges: list[bmesh.types.BMEdge] = [],
42
40
  use_restrict_tag: bool = False,
43
- method: typing.Union[str, int] = "AREA",
44
- ) -> typing.Dict[str, typing.Any]:
41
+ method: str | int = "AREA",
42
+ ) -> dict[str, typing.Any]:
45
43
  """Beautify Fill.Rotate edges to create more evenly spaced triangles.
46
44
 
47
45
  :param bm: The bmesh to operate on.
48
46
  :type bm: bmesh.types.BMesh
49
47
  :param faces: input faces
50
- :type faces: typing.List[bmesh.types.BMFace]
48
+ :type faces: list[bmesh.types.BMFace]
51
49
  :param edges: edges that can be flipped
52
- :type edges: typing.List[bmesh.types.BMEdge]
50
+ :type edges: list[bmesh.types.BMEdge]
53
51
  :param use_restrict_tag: restrict edge rotation to mixed tagged vertices
54
52
  :type use_restrict_tag: bool
55
53
  :param method: method to define what is beautiful
56
- :type method: typing.Union[str, int]
54
+ :type method: str | int
57
55
  :return: geom: new flipped faces and edges
58
56
 
59
57
  type list of (`bmesh.types.BMVert`, `bmesh.types.BMEdge`, `bmesh.types.BMFace`)
60
- :rtype: typing.Dict[str, typing.Any]
58
+ :rtype: dict[str, typing.Any]
61
59
  """
62
60
 
63
61
  ...
64
62
 
65
63
  def bevel(
66
64
  bm: bmesh.types.BMesh,
67
- geom: typing.Union[
68
- typing.List[bmesh.types.BMVert],
69
- typing.List[bmesh.types.BMEdge],
70
- typing.List[bmesh.types.BMFace],
71
- ] = [],
65
+ geom: list[bmesh.types.BMVert]
66
+ | list[bmesh.types.BMEdge]
67
+ | list[bmesh.types.BMFace] = [],
72
68
  offset: float = 0,
73
- offset_type: typing.Union[str, int] = "OFFSET",
74
- profile_type: typing.Union[str, int] = "SUPERELLIPSE",
69
+ offset_type: str | int = "OFFSET",
70
+ profile_type: str | int = "SUPERELLIPSE",
75
71
  segments: int = 0,
76
72
  profile: float = 0,
77
- affect: typing.Union[str, int] = "VERTICES",
73
+ affect: str | int = "VERTICES",
78
74
  clamp_overlap: bool = False,
79
75
  material: int = 0,
80
76
  loop_slide: bool = False,
81
77
  mark_seam: bool = False,
82
78
  mark_sharp: bool = False,
83
79
  harden_normals: bool = False,
84
- face_strength_mode: typing.Union[str, int] = "NONE",
85
- miter_outer: typing.Union[str, int] = "SHARP",
86
- miter_inner: typing.Union[str, int] = "SHARP",
80
+ face_strength_mode: str | int = "NONE",
81
+ miter_outer: str | int = "SHARP",
82
+ miter_inner: str | int = "SHARP",
87
83
  spread: float = 0,
88
84
  custom_profile: bpy.types.bpy_struct = None,
89
- vmesh_method: typing.Union[str, int] = "ADJ",
90
- ) -> typing.Dict[str, typing.Any]:
85
+ vmesh_method: str | int = "ADJ",
86
+ ) -> dict[str, typing.Any]:
91
87
  """Bevel.Bevels edges and vertices
92
88
 
93
89
  :param bm: The bmesh to operate on.
94
90
  :type bm: bmesh.types.BMesh
95
91
  :param geom: input edges and vertices
96
- :type geom: typing.Union[typing.List[bmesh.types.BMVert], typing.List[bmesh.types.BMEdge], typing.List[bmesh.types.BMFace]]
92
+ :type geom: list[bmesh.types.BMVert] | list[bmesh.types.BMEdge] | list[bmesh.types.BMFace]
97
93
  :param offset: amount to offset beveled edge
98
94
  :type offset: float
99
95
  :param offset_type: how to measure the offset
100
- :type offset_type: typing.Union[str, int]
96
+ :type offset_type: str | int
101
97
  :param profile_type: The profile type to use for bevel.
102
- :type profile_type: typing.Union[str, int]
98
+ :type profile_type: str | int
103
99
  :param segments: number of segments in bevel
104
100
  :type segments: int
105
101
  :param profile: profile shape, 0->1 (.5=>round)
106
102
  :type profile: float
107
103
  :param affect: Whether to bevel vertices or edges.
108
- :type affect: typing.Union[str, int]
104
+ :type affect: str | int
109
105
  :param clamp_overlap: do not allow beveled edges/vertices to overlap each other
110
106
  :type clamp_overlap: bool
111
107
  :param material: material for bevel faces, -1 means get from adjacent faces
@@ -119,17 +115,17 @@ def bevel(
119
115
  :param harden_normals: harden normals
120
116
  :type harden_normals: bool
121
117
  :param face_strength_mode: whether to set face strength, and which faces to set if so
122
- :type face_strength_mode: typing.Union[str, int]
118
+ :type face_strength_mode: str | int
123
119
  :param miter_outer: outer miter kind
124
- :type miter_outer: typing.Union[str, int]
120
+ :type miter_outer: str | int
125
121
  :param miter_inner: outer miter kind
126
- :type miter_inner: typing.Union[str, int]
122
+ :type miter_inner: str | int
127
123
  :param spread: amount to offset beveled edge
128
124
  :type spread: float
129
125
  :param custom_profile: CurveProfile, if None ignored
130
126
  :type custom_profile: bpy.types.bpy_struct
131
127
  :param vmesh_method: The method to use to create meshes at intersections.
132
- :type vmesh_method: typing.Union[str, int]
128
+ :type vmesh_method: str | int
133
129
  :return: faces: output faces
134
130
 
135
131
  type list of (`bmesh.types.BMFace`)
@@ -141,61 +137,59 @@ def bevel(
141
137
  verts: output verts
142
138
 
143
139
  type list of (`bmesh.types.BMVert`)
144
- :rtype: typing.Dict[str, typing.Any]
140
+ :rtype: dict[str, typing.Any]
145
141
  """
146
142
 
147
143
  ...
148
144
 
149
145
  def bisect_edges(
150
146
  bm: bmesh.types.BMesh,
151
- edges: typing.List[bmesh.types.BMEdge] = [],
147
+ edges: list[bmesh.types.BMEdge] = [],
152
148
  cuts: int = 0,
153
149
  edge_percents={},
154
- ) -> typing.Dict[str, typing.Any]:
150
+ ) -> dict[str, typing.Any]:
155
151
  """Edge Bisect.Splits input edges (but doesn't do anything else).
156
152
  This creates a 2-valence vert.
157
153
 
158
154
  :param bm: The bmesh to operate on.
159
155
  :type bm: bmesh.types.BMesh
160
156
  :param edges: input edges
161
- :type edges: typing.List[bmesh.types.BMEdge]
157
+ :type edges: list[bmesh.types.BMEdge]
162
158
  :param cuts: number of cuts
163
159
  :type cuts: int
164
160
  :param edge_percents: Undocumented.
165
161
  :return: geom_split: newly created vertices and edges
166
162
 
167
163
  type list of (`bmesh.types.BMVert`, `bmesh.types.BMEdge`, `bmesh.types.BMFace`)
168
- :rtype: typing.Dict[str, typing.Any]
164
+ :rtype: dict[str, typing.Any]
169
165
  """
170
166
 
171
167
  ...
172
168
 
173
169
  def bisect_plane(
174
170
  bm: bmesh.types.BMesh,
175
- geom: typing.Union[
176
- typing.List[bmesh.types.BMVert],
177
- typing.List[bmesh.types.BMEdge],
178
- typing.List[bmesh.types.BMFace],
179
- ] = [],
171
+ geom: list[bmesh.types.BMVert]
172
+ | list[bmesh.types.BMEdge]
173
+ | list[bmesh.types.BMFace] = [],
180
174
  dist: float = 0,
181
- plane_co: typing.Union[typing.Sequence[float], mathutils.Vector] = None(),
182
- plane_no: typing.Union[typing.Sequence[float], mathutils.Vector] = None(),
175
+ plane_co: typing.Sequence[float] | mathutils.Vector = None(),
176
+ plane_no: typing.Sequence[float] | mathutils.Vector = None(),
183
177
  use_snap_center: bool = False,
184
178
  clear_outer: bool = False,
185
179
  clear_inner: bool = False,
186
- ) -> typing.Dict[str, typing.Any]:
180
+ ) -> dict[str, typing.Any]:
187
181
  """Bisect Plane.Bisects the mesh by a plane (cut the mesh in half).
188
182
 
189
183
  :param bm: The bmesh to operate on.
190
184
  :type bm: bmesh.types.BMesh
191
185
  :param geom: input geometry
192
- :type geom: typing.Union[typing.List[bmesh.types.BMVert], typing.List[bmesh.types.BMEdge], typing.List[bmesh.types.BMFace]]
186
+ :type geom: list[bmesh.types.BMVert] | list[bmesh.types.BMEdge] | list[bmesh.types.BMFace]
193
187
  :param dist: minimum distance when testing if a vert is exactly on the plane
194
188
  :type dist: float
195
189
  :param plane_co: point on the plane
196
- :type plane_co: typing.Union[typing.Sequence[float], mathutils.Vector]
190
+ :type plane_co: typing.Sequence[float] | mathutils.Vector
197
191
  :param plane_no: direction of the plane
198
- :type plane_no: typing.Union[typing.Sequence[float], mathutils.Vector]
192
+ :type plane_no: typing.Sequence[float] | mathutils.Vector
199
193
  :param use_snap_center: snap axis aligned verts to the center
200
194
  :type use_snap_center: bool
201
195
  :param clear_outer: when enabled. remove all geometry on the positive side of the plane
@@ -209,7 +203,7 @@ def bisect_plane(
209
203
  geom: input and output geometry (result of cut).
210
204
 
211
205
  type list of (`bmesh.types.BMVert`, `bmesh.types.BMEdge`, `bmesh.types.BMFace`)
212
- :rtype: typing.Dict[str, typing.Any]
206
+ :rtype: dict[str, typing.Any]
213
207
  """
214
208
 
215
209
  ...
@@ -231,19 +225,19 @@ def bmesh_to_mesh(
231
225
 
232
226
  def bridge_loops(
233
227
  bm: bmesh.types.BMesh,
234
- edges: typing.List[bmesh.types.BMEdge] = [],
228
+ edges: list[bmesh.types.BMEdge] = [],
235
229
  use_pairs: bool = False,
236
230
  use_cyclic: bool = False,
237
231
  use_merge: bool = False,
238
232
  merge_factor: float = 0,
239
233
  twist_offset: int = 0,
240
- ) -> typing.Dict[str, typing.Any]:
234
+ ) -> dict[str, typing.Any]:
241
235
  """Bridge edge loops with faces.
242
236
 
243
237
  :param bm: The bmesh to operate on.
244
238
  :type bm: bmesh.types.BMesh
245
239
  :param edges: input edges
246
- :type edges: typing.List[bmesh.types.BMEdge]
240
+ :type edges: list[bmesh.types.BMEdge]
247
241
  :param use_pairs: Undocumented.
248
242
  :type use_pairs: bool
249
243
  :param use_cyclic: Undocumented.
@@ -261,96 +255,94 @@ def bridge_loops(
261
255
  edges: new edges
262
256
 
263
257
  type list of (`bmesh.types.BMEdge`)
264
- :rtype: typing.Dict[str, typing.Any]
258
+ :rtype: dict[str, typing.Any]
265
259
  """
266
260
 
267
261
  ...
268
262
 
269
263
  def collapse(
270
- bm: bmesh.types.BMesh,
271
- edges: typing.List[bmesh.types.BMEdge] = [],
272
- uvs: bool = False,
264
+ bm: bmesh.types.BMesh, edges: list[bmesh.types.BMEdge] = [], uvs: bool = False
273
265
  ):
274
266
  """Collapse Connected.Collapses connected vertices
275
267
 
276
268
  :param bm: The bmesh to operate on.
277
269
  :type bm: bmesh.types.BMesh
278
270
  :param edges: input edges
279
- :type edges: typing.List[bmesh.types.BMEdge]
271
+ :type edges: list[bmesh.types.BMEdge]
280
272
  :param uvs: also collapse UVs and such
281
273
  :type uvs: bool
282
274
  """
283
275
 
284
276
  ...
285
277
 
286
- def collapse_uvs(bm: bmesh.types.BMesh, edges: typing.List[bmesh.types.BMEdge] = []):
278
+ def collapse_uvs(bm: bmesh.types.BMesh, edges: list[bmesh.types.BMEdge] = []):
287
279
  """Collapse Connected UVs.Collapses connected UV vertices.
288
280
 
289
281
  :param bm: The bmesh to operate on.
290
282
  :type bm: bmesh.types.BMesh
291
283
  :param edges: input edges
292
- :type edges: typing.List[bmesh.types.BMEdge]
284
+ :type edges: list[bmesh.types.BMEdge]
293
285
  """
294
286
 
295
287
  ...
296
288
 
297
289
  def connect_vert_pair(
298
290
  bm: bmesh.types.BMesh,
299
- verts: typing.List[bmesh.types.BMVert] = [],
300
- verts_exclude: typing.List[bmesh.types.BMVert] = [],
301
- faces_exclude: typing.List[bmesh.types.BMFace] = [],
302
- ) -> typing.Dict[str, typing.Any]:
291
+ verts: list[bmesh.types.BMVert] = [],
292
+ verts_exclude: list[bmesh.types.BMVert] = [],
293
+ faces_exclude: list[bmesh.types.BMFace] = [],
294
+ ) -> dict[str, typing.Any]:
303
295
  """Connect Verts.Split faces by adding edges that connect verts.
304
296
 
305
297
  :param bm: The bmesh to operate on.
306
298
  :type bm: bmesh.types.BMesh
307
299
  :param verts: input vertices
308
- :type verts: typing.List[bmesh.types.BMVert]
300
+ :type verts: list[bmesh.types.BMVert]
309
301
  :param verts_exclude: input vertices to explicitly exclude from connecting
310
- :type verts_exclude: typing.List[bmesh.types.BMVert]
302
+ :type verts_exclude: list[bmesh.types.BMVert]
311
303
  :param faces_exclude: input faces to explicitly exclude from connecting
312
- :type faces_exclude: typing.List[bmesh.types.BMFace]
304
+ :type faces_exclude: list[bmesh.types.BMFace]
313
305
  :return: edges:
314
306
 
315
307
  type list of (`bmesh.types.BMEdge`)
316
- :rtype: typing.Dict[str, typing.Any]
308
+ :rtype: dict[str, typing.Any]
317
309
  """
318
310
 
319
311
  ...
320
312
 
321
313
  def connect_verts(
322
314
  bm: bmesh.types.BMesh,
323
- verts: typing.List[bmesh.types.BMVert] = [],
324
- faces_exclude: typing.List[bmesh.types.BMFace] = [],
315
+ verts: list[bmesh.types.BMVert] = [],
316
+ faces_exclude: list[bmesh.types.BMFace] = [],
325
317
  check_degenerate: bool = False,
326
- ) -> typing.Dict[str, typing.Any]:
318
+ ) -> dict[str, typing.Any]:
327
319
  """Connect Verts.Split faces by adding edges that connect verts.
328
320
 
329
321
  :param bm: The bmesh to operate on.
330
322
  :type bm: bmesh.types.BMesh
331
323
  :param verts: input vertices
332
- :type verts: typing.List[bmesh.types.BMVert]
324
+ :type verts: list[bmesh.types.BMVert]
333
325
  :param faces_exclude: input faces to explicitly exclude from connecting
334
- :type faces_exclude: typing.List[bmesh.types.BMFace]
326
+ :type faces_exclude: list[bmesh.types.BMFace]
335
327
  :param check_degenerate: prevent splits with overlaps & intersections
336
328
  :type check_degenerate: bool
337
329
  :return: edges:
338
330
 
339
331
  type list of (`bmesh.types.BMEdge`)
340
- :rtype: typing.Dict[str, typing.Any]
332
+ :rtype: dict[str, typing.Any]
341
333
  """
342
334
 
343
335
  ...
344
336
 
345
337
  def connect_verts_concave(
346
- bm: bmesh.types.BMesh, faces: typing.List[bmesh.types.BMFace] = []
347
- ) -> typing.Dict[str, typing.Any]:
338
+ bm: bmesh.types.BMesh, faces: list[bmesh.types.BMFace] = []
339
+ ) -> dict[str, typing.Any]:
348
340
  """Connect Verts to form Convex Faces.Ensures all faces are convex faces.
349
341
 
350
342
  :param bm: The bmesh to operate on.
351
343
  :type bm: bmesh.types.BMesh
352
344
  :param faces: input faces
353
- :type faces: typing.List[bmesh.types.BMFace]
345
+ :type faces: list[bmesh.types.BMFace]
354
346
  :return: edges:
355
347
 
356
348
  type list of (`bmesh.types.BMEdge`)
@@ -358,16 +350,14 @@ def connect_verts_concave(
358
350
  faces:
359
351
 
360
352
  type list of (`bmesh.types.BMFace`)
361
- :rtype: typing.Dict[str, typing.Any]
353
+ :rtype: dict[str, typing.Any]
362
354
  """
363
355
 
364
356
  ...
365
357
 
366
358
  def connect_verts_nonplanar(
367
- bm: bmesh.types.BMesh,
368
- angle_limit: float = 0,
369
- faces: typing.List[bmesh.types.BMFace] = [],
370
- ) -> typing.Dict[str, typing.Any]:
359
+ bm: bmesh.types.BMesh, angle_limit: float = 0, faces: list[bmesh.types.BMFace] = []
360
+ ) -> dict[str, typing.Any]:
371
361
  """Connect Verts Across non Planer Faces.Split faces by connecting edges along non planer faces.
372
362
 
373
363
  :param bm: The bmesh to operate on.
@@ -375,7 +365,7 @@ def connect_verts_nonplanar(
375
365
  :param angle_limit: total rotation angle (radians)
376
366
  :type angle_limit: float
377
367
  :param faces: input faces
378
- :type faces: typing.List[bmesh.types.BMFace]
368
+ :type faces: list[bmesh.types.BMFace]
379
369
  :return: edges:
380
370
 
381
371
  type list of (`bmesh.types.BMEdge`)
@@ -383,21 +373,19 @@ def connect_verts_nonplanar(
383
373
  faces:
384
374
 
385
375
  type list of (`bmesh.types.BMFace`)
386
- :rtype: typing.Dict[str, typing.Any]
376
+ :rtype: dict[str, typing.Any]
387
377
  """
388
378
 
389
379
  ...
390
380
 
391
381
  def contextual_create(
392
382
  bm: bmesh.types.BMesh,
393
- geom: typing.Union[
394
- typing.List[bmesh.types.BMVert],
395
- typing.List[bmesh.types.BMEdge],
396
- typing.List[bmesh.types.BMFace],
397
- ] = [],
383
+ geom: list[bmesh.types.BMVert]
384
+ | list[bmesh.types.BMEdge]
385
+ | list[bmesh.types.BMFace] = [],
398
386
  mat_nr: int = 0,
399
387
  use_smooth: bool = False,
400
- ) -> typing.Dict[str, typing.Any]:
388
+ ) -> dict[str, typing.Any]:
401
389
  """Contextual Create.This is basically F-key, it creates
402
390
  new faces from vertices, makes stuff from edge nets,
403
391
  makes wire edges, etc. It also dissolves faces.Three verts become a triangle, four become a quad. Two
@@ -406,7 +394,7 @@ def contextual_create(
406
394
  :param bm: The bmesh to operate on.
407
395
  :type bm: bmesh.types.BMesh
408
396
  :param geom: input geometry.
409
- :type geom: typing.Union[typing.List[bmesh.types.BMVert], typing.List[bmesh.types.BMEdge], typing.List[bmesh.types.BMFace]]
397
+ :type geom: list[bmesh.types.BMVert] | list[bmesh.types.BMEdge] | list[bmesh.types.BMFace]
410
398
  :param mat_nr: material to use
411
399
  :type mat_nr: int
412
400
  :param use_smooth: smooth to use
@@ -418,20 +406,18 @@ def contextual_create(
418
406
  edges: newly-made edge(s)
419
407
 
420
408
  type list of (`bmesh.types.BMEdge`)
421
- :rtype: typing.Dict[str, typing.Any]
409
+ :rtype: dict[str, typing.Any]
422
410
  """
423
411
 
424
412
  ...
425
413
 
426
414
  def convex_hull(
427
415
  bm: bmesh.types.BMesh,
428
- input: typing.Union[
429
- typing.List[bmesh.types.BMVert],
430
- typing.List[bmesh.types.BMEdge],
431
- typing.List[bmesh.types.BMFace],
432
- ] = [],
416
+ input: list[bmesh.types.BMVert]
417
+ | list[bmesh.types.BMEdge]
418
+ | list[bmesh.types.BMFace] = [],
433
419
  use_existing_faces: bool = False,
434
- ) -> typing.Dict[str, typing.Any]:
420
+ ) -> dict[str, typing.Any]:
435
421
  """Convex HullBuilds a convex hull from the vertices in 'input'.If 'use_existing_faces' is true, the hull will not output triangles
436
422
  that are covered by a pre-existing face.All hull vertices, faces, and edges are added to 'geom.out'. Any
437
423
  input elements that end up inside the hull (i.e. are not used by an
@@ -443,7 +429,7 @@ def convex_hull(
443
429
  :param bm: The bmesh to operate on.
444
430
  :type bm: bmesh.types.BMesh
445
431
  :param input: input geometry
446
- :type input: typing.Union[typing.List[bmesh.types.BMVert], typing.List[bmesh.types.BMEdge], typing.List[bmesh.types.BMFace]]
432
+ :type input: list[bmesh.types.BMVert] | list[bmesh.types.BMEdge] | list[bmesh.types.BMFace]
447
433
  :param use_existing_faces: skip hull triangles that are covered by a pre-existing face
448
434
  :type use_existing_faces: bool
449
435
  :return: geom:
@@ -461,7 +447,7 @@ def convex_hull(
461
447
  geom_holes:
462
448
 
463
449
  type list of (`bmesh.types.BMVert`, `bmesh.types.BMEdge`, `bmesh.types.BMFace`)
464
- :rtype: typing.Dict[str, typing.Any]
450
+ :rtype: dict[str, typing.Any]
465
451
  """
466
452
 
467
453
  ...
@@ -472,9 +458,9 @@ def create_circle(
472
458
  cap_tris: bool = False,
473
459
  segments: int = 0,
474
460
  radius: float = 0,
475
- matrix: typing.Union[typing.Sequence[float], mathutils.Matrix] = None(4),
461
+ matrix: typing.Sequence[float] | mathutils.Matrix = None(4),
476
462
  calc_uvs: bool = False,
477
- ) -> typing.Dict[str, typing.Any]:
463
+ ) -> dict[str, typing.Any]:
478
464
  """Creates a Circle.
479
465
 
480
466
  :param bm: The bmesh to operate on.
@@ -488,13 +474,13 @@ def create_circle(
488
474
  :param radius: Radius of the circle.
489
475
  :type radius: float
490
476
  :param matrix: matrix to multiply the new geometry with
491
- :type matrix: typing.Union[typing.Sequence[float], mathutils.Matrix]
477
+ :type matrix: typing.Sequence[float] | mathutils.Matrix
492
478
  :param calc_uvs: calculate default UVs
493
479
  :type calc_uvs: bool
494
480
  :return: verts: output verts
495
481
 
496
482
  type list of (`bmesh.types.BMVert`)
497
- :rtype: typing.Dict[str, typing.Any]
483
+ :rtype: dict[str, typing.Any]
498
484
  """
499
485
 
500
486
  ...
@@ -507,9 +493,9 @@ def create_cone(
507
493
  radius1: float = 0,
508
494
  radius2: float = 0,
509
495
  depth: float = 0,
510
- matrix: typing.Union[typing.Sequence[float], mathutils.Matrix] = None(4),
496
+ matrix: typing.Sequence[float] | mathutils.Matrix = None(4),
511
497
  calc_uvs: bool = False,
512
- ) -> typing.Dict[str, typing.Any]:
498
+ ) -> dict[str, typing.Any]:
513
499
  """Create Cone.Creates a cone with variable depth at both ends
514
500
 
515
501
  :param bm: The bmesh to operate on.
@@ -527,13 +513,13 @@ def create_cone(
527
513
  :param depth: distance between ends
528
514
  :type depth: float
529
515
  :param matrix: matrix to multiply the new geometry with
530
- :type matrix: typing.Union[typing.Sequence[float], mathutils.Matrix]
516
+ :type matrix: typing.Sequence[float] | mathutils.Matrix
531
517
  :param calc_uvs: calculate default UVs
532
518
  :type calc_uvs: bool
533
519
  :return: verts: output verts
534
520
 
535
521
  type list of (`bmesh.types.BMVert`)
536
- :rtype: typing.Dict[str, typing.Any]
522
+ :rtype: dict[str, typing.Any]
537
523
  """
538
524
 
539
525
  ...
@@ -541,9 +527,9 @@ def create_cone(
541
527
  def create_cube(
542
528
  bm: bmesh.types.BMesh,
543
529
  size: float = 0,
544
- matrix: typing.Union[typing.Sequence[float], mathutils.Matrix] = None(4),
530
+ matrix: typing.Sequence[float] | mathutils.Matrix = None(4),
545
531
  calc_uvs: bool = False,
546
- ) -> typing.Dict[str, typing.Any]:
532
+ ) -> dict[str, typing.Any]:
547
533
  """Create CubeCreates a cube.
548
534
 
549
535
  :param bm: The bmesh to operate on.
@@ -551,13 +537,13 @@ def create_cube(
551
537
  :param size: size of the cube
552
538
  :type size: float
553
539
  :param matrix: matrix to multiply the new geometry with
554
- :type matrix: typing.Union[typing.Sequence[float], mathutils.Matrix]
540
+ :type matrix: typing.Sequence[float] | mathutils.Matrix
555
541
  :param calc_uvs: calculate default UVs
556
542
  :type calc_uvs: bool
557
543
  :return: verts: output verts
558
544
 
559
545
  type list of (`bmesh.types.BMVert`)
560
- :rtype: typing.Dict[str, typing.Any]
546
+ :rtype: dict[str, typing.Any]
561
547
  """
562
548
 
563
549
  ...
@@ -567,9 +553,9 @@ def create_grid(
567
553
  x_segments: int = 0,
568
554
  y_segments: int = 0,
569
555
  size: float = 0,
570
- matrix: typing.Union[typing.Sequence[float], mathutils.Matrix] = None(4),
556
+ matrix: typing.Sequence[float] | mathutils.Matrix = None(4),
571
557
  calc_uvs: bool = False,
572
- ) -> typing.Dict[str, typing.Any]:
558
+ ) -> dict[str, typing.Any]:
573
559
  """Create Grid.Creates a grid with a variable number of subdivisions
574
560
 
575
561
  :param bm: The bmesh to operate on.
@@ -581,13 +567,13 @@ def create_grid(
581
567
  :param size: size of the grid
582
568
  :type size: float
583
569
  :param matrix: matrix to multiply the new geometry with
584
- :type matrix: typing.Union[typing.Sequence[float], mathutils.Matrix]
570
+ :type matrix: typing.Sequence[float] | mathutils.Matrix
585
571
  :param calc_uvs: calculate default UVs
586
572
  :type calc_uvs: bool
587
573
  :return: verts: output verts
588
574
 
589
575
  type list of (`bmesh.types.BMVert`)
590
- :rtype: typing.Dict[str, typing.Any]
576
+ :rtype: dict[str, typing.Any]
591
577
  """
592
578
 
593
579
  ...
@@ -596,9 +582,9 @@ def create_icosphere(
596
582
  bm: bmesh.types.BMesh,
597
583
  subdivisions: int = 0,
598
584
  radius: float = 0,
599
- matrix: typing.Union[typing.Sequence[float], mathutils.Matrix] = None(4),
585
+ matrix: typing.Sequence[float] | mathutils.Matrix = None(4),
600
586
  calc_uvs: bool = False,
601
- ) -> typing.Dict[str, typing.Any]:
587
+ ) -> dict[str, typing.Any]:
602
588
  """Create Ico-Sphere.Creates a grid with a variable number of subdivisions
603
589
 
604
590
  :param bm: The bmesh to operate on.
@@ -608,34 +594,34 @@ def create_icosphere(
608
594
  :param radius: radius
609
595
  :type radius: float
610
596
  :param matrix: matrix to multiply the new geometry with
611
- :type matrix: typing.Union[typing.Sequence[float], mathutils.Matrix]
597
+ :type matrix: typing.Sequence[float] | mathutils.Matrix
612
598
  :param calc_uvs: calculate default UVs
613
599
  :type calc_uvs: bool
614
600
  :return: verts: output verts
615
601
 
616
602
  type list of (`bmesh.types.BMVert`)
617
- :rtype: typing.Dict[str, typing.Any]
603
+ :rtype: dict[str, typing.Any]
618
604
  """
619
605
 
620
606
  ...
621
607
 
622
608
  def create_monkey(
623
609
  bm: bmesh.types.BMesh,
624
- matrix: typing.Union[typing.Sequence[float], mathutils.Matrix] = None(4),
610
+ matrix: typing.Sequence[float] | mathutils.Matrix = None(4),
625
611
  calc_uvs: bool = False,
626
- ) -> typing.Dict[str, typing.Any]:
612
+ ) -> dict[str, typing.Any]:
627
613
  """Create Suzanne.Creates a monkey (standard blender primitive).
628
614
 
629
615
  :param bm: The bmesh to operate on.
630
616
  :type bm: bmesh.types.BMesh
631
617
  :param matrix: matrix to multiply the new geometry with
632
- :type matrix: typing.Union[typing.Sequence[float], mathutils.Matrix]
618
+ :type matrix: typing.Sequence[float] | mathutils.Matrix
633
619
  :param calc_uvs: calculate default UVs
634
620
  :type calc_uvs: bool
635
621
  :return: verts: output verts
636
622
 
637
623
  type list of (`bmesh.types.BMVert`)
638
- :rtype: typing.Dict[str, typing.Any]
624
+ :rtype: dict[str, typing.Any]
639
625
  """
640
626
 
641
627
  ...
@@ -645,9 +631,9 @@ def create_uvsphere(
645
631
  u_segments: int = 0,
646
632
  v_segments: int = 0,
647
633
  radius: float = 0,
648
- matrix: typing.Union[typing.Sequence[float], mathutils.Matrix] = None(4),
634
+ matrix: typing.Sequence[float] | mathutils.Matrix = None(4),
649
635
  calc_uvs: bool = False,
650
- ) -> typing.Dict[str, typing.Any]:
636
+ ) -> dict[str, typing.Any]:
651
637
  """Create UV Sphere.Creates a grid with a variable number of subdivisions
652
638
 
653
639
  :param bm: The bmesh to operate on.
@@ -659,59 +645,56 @@ def create_uvsphere(
659
645
  :param radius: radius
660
646
  :type radius: float
661
647
  :param matrix: matrix to multiply the new geometry with
662
- :type matrix: typing.Union[typing.Sequence[float], mathutils.Matrix]
648
+ :type matrix: typing.Sequence[float] | mathutils.Matrix
663
649
  :param calc_uvs: calculate default UVs
664
650
  :type calc_uvs: bool
665
651
  :return: verts: output verts
666
652
 
667
653
  type list of (`bmesh.types.BMVert`)
668
- :rtype: typing.Dict[str, typing.Any]
654
+ :rtype: dict[str, typing.Any]
669
655
  """
670
656
 
671
657
  ...
672
658
 
673
659
  def create_vert(
674
- bm: bmesh.types.BMesh,
675
- co: typing.Union[typing.Sequence[float], mathutils.Vector] = None(),
676
- ) -> typing.Dict[str, typing.Any]:
660
+ bm: bmesh.types.BMesh, co: typing.Sequence[float] | mathutils.Vector = None()
661
+ ) -> dict[str, typing.Any]:
677
662
  """Make Vertex.Creates a single vertex; this BMOP was necessary
678
663
  for click-create-vertex.
679
664
 
680
665
  :param bm: The bmesh to operate on.
681
666
  :type bm: bmesh.types.BMesh
682
667
  :param co: the coordinate of the new vert
683
- :type co: typing.Union[typing.Sequence[float], mathutils.Vector]
668
+ :type co: typing.Sequence[float] | mathutils.Vector
684
669
  :return: vert: the new vert
685
670
 
686
671
  type list of (`bmesh.types.BMVert`)
687
- :rtype: typing.Dict[str, typing.Any]
672
+ :rtype: dict[str, typing.Any]
688
673
  """
689
674
 
690
675
  ...
691
676
 
692
677
  def delete(
693
678
  bm: bmesh.types.BMesh,
694
- geom: typing.Union[
695
- typing.List[bmesh.types.BMVert],
696
- typing.List[bmesh.types.BMEdge],
697
- typing.List[bmesh.types.BMFace],
698
- ] = [],
699
- context: typing.Union[str, int] = "VERTS",
679
+ geom: list[bmesh.types.BMVert]
680
+ | list[bmesh.types.BMEdge]
681
+ | list[bmesh.types.BMFace] = [],
682
+ context: str | int = "VERTS",
700
683
  ):
701
684
  """Delete Geometry.Utility operator to delete geometry.
702
685
 
703
686
  :param bm: The bmesh to operate on.
704
687
  :type bm: bmesh.types.BMesh
705
688
  :param geom: input geometry
706
- :type geom: typing.Union[typing.List[bmesh.types.BMVert], typing.List[bmesh.types.BMEdge], typing.List[bmesh.types.BMFace]]
689
+ :type geom: list[bmesh.types.BMVert] | list[bmesh.types.BMEdge] | list[bmesh.types.BMFace]
707
690
  :param context: geometry types to delete
708
- :type context: typing.Union[str, int]
691
+ :type context: str | int
709
692
  """
710
693
 
711
694
  ...
712
695
 
713
696
  def dissolve_degenerate(
714
- bm: bmesh.types.BMesh, dist: float = 0, edges: typing.List[bmesh.types.BMEdge] = []
697
+ bm: bmesh.types.BMesh, dist: float = 0, edges: list[bmesh.types.BMEdge] = []
715
698
  ):
716
699
  """Degenerate Dissolve.Dissolve edges with no length, faces with no area.
717
700
 
@@ -720,23 +703,23 @@ def dissolve_degenerate(
720
703
  :param dist: maximum distance to consider degenerate
721
704
  :type dist: float
722
705
  :param edges: input edges
723
- :type edges: typing.List[bmesh.types.BMEdge]
706
+ :type edges: list[bmesh.types.BMEdge]
724
707
  """
725
708
 
726
709
  ...
727
710
 
728
711
  def dissolve_edges(
729
712
  bm: bmesh.types.BMesh,
730
- edges: typing.List[bmesh.types.BMEdge] = [],
713
+ edges: list[bmesh.types.BMEdge] = [],
731
714
  use_verts: bool = False,
732
715
  use_face_split: bool = False,
733
- ) -> typing.Dict[str, typing.Any]:
716
+ ) -> dict[str, typing.Any]:
734
717
  """Dissolve Edges.
735
718
 
736
719
  :param bm: The bmesh to operate on.
737
720
  :type bm: bmesh.types.BMesh
738
721
  :param edges: input edges
739
- :type edges: typing.List[bmesh.types.BMEdge]
722
+ :type edges: list[bmesh.types.BMEdge]
740
723
  :param use_verts: dissolve verts left between only 2 edges.
741
724
  :type use_verts: bool
742
725
  :param use_face_split: split off face corners to maintain surrounding geometry
@@ -744,28 +727,26 @@ def dissolve_edges(
744
727
  :return: region:
745
728
 
746
729
  type list of (`bmesh.types.BMFace`)
747
- :rtype: typing.Dict[str, typing.Any]
730
+ :rtype: dict[str, typing.Any]
748
731
  """
749
732
 
750
733
  ...
751
734
 
752
735
  def dissolve_faces(
753
- bm: bmesh.types.BMesh,
754
- faces: typing.List[bmesh.types.BMFace] = [],
755
- use_verts: bool = False,
756
- ) -> typing.Dict[str, typing.Any]:
736
+ bm: bmesh.types.BMesh, faces: list[bmesh.types.BMFace] = [], use_verts: bool = False
737
+ ) -> dict[str, typing.Any]:
757
738
  """Dissolve Faces.
758
739
 
759
740
  :param bm: The bmesh to operate on.
760
741
  :type bm: bmesh.types.BMesh
761
742
  :param faces: input faces
762
- :type faces: typing.List[bmesh.types.BMFace]
743
+ :type faces: list[bmesh.types.BMFace]
763
744
  :param use_verts: dissolve verts left between only 2 edges.
764
745
  :type use_verts: bool
765
746
  :return: region:
766
747
 
767
748
  type list of (`bmesh.types.BMFace`)
768
- :rtype: typing.Dict[str, typing.Any]
749
+ :rtype: dict[str, typing.Any]
769
750
  """
770
751
 
771
752
  ...
@@ -774,10 +755,10 @@ def dissolve_limit(
774
755
  bm: bmesh.types.BMesh,
775
756
  angle_limit: float = 0,
776
757
  use_dissolve_boundaries: bool = False,
777
- verts: typing.List[bmesh.types.BMVert] = [],
778
- edges: typing.List[bmesh.types.BMEdge] = [],
758
+ verts: list[bmesh.types.BMVert] = [],
759
+ edges: list[bmesh.types.BMEdge] = [],
779
760
  delimit=None(),
780
- ) -> typing.Dict[str, typing.Any]:
761
+ ) -> dict[str, typing.Any]:
781
762
  """Limited Dissolve.Dissolve planar faces and co-linear edges.
782
763
 
783
764
  :param bm: The bmesh to operate on.
@@ -787,21 +768,21 @@ def dissolve_limit(
787
768
  :param use_dissolve_boundaries: dissolve all vertices in between face boundaries
788
769
  :type use_dissolve_boundaries: bool
789
770
  :param verts: input vertices
790
- :type verts: typing.List[bmesh.types.BMVert]
771
+ :type verts: list[bmesh.types.BMVert]
791
772
  :param edges: input edges
792
- :type edges: typing.List[bmesh.types.BMEdge]
773
+ :type edges: list[bmesh.types.BMEdge]
793
774
  :param delimit: delimit dissolve operation
794
775
  :return: region:
795
776
 
796
777
  type list of (`bmesh.types.BMFace`)
797
- :rtype: typing.Dict[str, typing.Any]
778
+ :rtype: dict[str, typing.Any]
798
779
  """
799
780
 
800
781
  ...
801
782
 
802
783
  def dissolve_verts(
803
784
  bm: bmesh.types.BMesh,
804
- verts: typing.List[bmesh.types.BMVert] = [],
785
+ verts: list[bmesh.types.BMVert] = [],
805
786
  use_face_split: bool = False,
806
787
  use_boundary_tear: bool = False,
807
788
  ):
@@ -810,7 +791,7 @@ def dissolve_verts(
810
791
  :param bm: The bmesh to operate on.
811
792
  :type bm: bmesh.types.BMesh
812
793
  :param verts: input vertices
813
- :type verts: typing.List[bmesh.types.BMVert]
794
+ :type verts: list[bmesh.types.BMVert]
814
795
  :param use_face_split: split off face corners to maintain surrounding geometry
815
796
  :type use_face_split: bool
816
797
  :param use_boundary_tear: split off face corners instead of merging faces
@@ -821,22 +802,20 @@ def dissolve_verts(
821
802
 
822
803
  def duplicate(
823
804
  bm: bmesh.types.BMesh,
824
- geom: typing.Union[
825
- typing.List[bmesh.types.BMVert],
826
- typing.List[bmesh.types.BMEdge],
827
- typing.List[bmesh.types.BMFace],
828
- ] = [],
805
+ geom: list[bmesh.types.BMVert]
806
+ | list[bmesh.types.BMEdge]
807
+ | list[bmesh.types.BMFace] = [],
829
808
  dest: bmesh.types.BMesh = None,
830
809
  use_select_history: bool = False,
831
810
  use_edge_flip_from_face: bool = False,
832
- ) -> typing.Dict[str, typing.Any]:
811
+ ) -> dict[str, typing.Any]:
833
812
  """Duplicate Geometry.Utility operator to duplicate geometry,
834
813
  optionally into a destination mesh.
835
814
 
836
815
  :param bm: The bmesh to operate on.
837
816
  :type bm: bmesh.types.BMesh
838
817
  :param geom: input geometry
839
- :type geom: typing.Union[typing.List[bmesh.types.BMVert], typing.List[bmesh.types.BMEdge], typing.List[bmesh.types.BMFace]]
818
+ :type geom: list[bmesh.types.BMVert] | list[bmesh.types.BMEdge] | list[bmesh.types.BMFace]
840
819
  :param dest: destination bmesh, if None will use current on
841
820
  :type dest: bmesh.types.BMesh
842
821
  :param use_select_history: Undocumented.
@@ -870,23 +849,23 @@ def duplicate(
870
849
  isovert_map:
871
850
 
872
851
  type dict mapping vert/edge/face types to `bmesh.types.BMVert`/`bmesh.types.BMEdge`/`bmesh.types.BMFace`
873
- :rtype: typing.Dict[str, typing.Any]
852
+ :rtype: dict[str, typing.Any]
874
853
  """
875
854
 
876
855
  ...
877
856
 
878
857
  def edgeloop_fill(
879
858
  bm: bmesh.types.BMesh,
880
- edges: typing.List[bmesh.types.BMEdge] = [],
859
+ edges: list[bmesh.types.BMEdge] = [],
881
860
  mat_nr: int = 0,
882
861
  use_smooth: bool = False,
883
- ) -> typing.Dict[str, typing.Any]:
862
+ ) -> dict[str, typing.Any]:
884
863
  """Edge Loop Fill.Create faces defined by one or more non overlapping edge loops.
885
864
 
886
865
  :param bm: The bmesh to operate on.
887
866
  :type bm: bmesh.types.BMesh
888
867
  :param edges: input edges
889
- :type edges: typing.List[bmesh.types.BMEdge]
868
+ :type edges: list[bmesh.types.BMEdge]
890
869
  :param mat_nr: material to use
891
870
  :type mat_nr: int
892
871
  :param use_smooth: smooth state to use
@@ -894,24 +873,24 @@ def edgeloop_fill(
894
873
  :return: faces: new faces
895
874
 
896
875
  type list of (`bmesh.types.BMFace`)
897
- :rtype: typing.Dict[str, typing.Any]
876
+ :rtype: dict[str, typing.Any]
898
877
  """
899
878
 
900
879
  ...
901
880
 
902
881
  def edgenet_fill(
903
882
  bm: bmesh.types.BMesh,
904
- edges: typing.List[bmesh.types.BMEdge] = [],
883
+ edges: list[bmesh.types.BMEdge] = [],
905
884
  mat_nr: int = 0,
906
885
  use_smooth: bool = False,
907
886
  sides: int = 0,
908
- ) -> typing.Dict[str, typing.Any]:
887
+ ) -> dict[str, typing.Any]:
909
888
  """Edge Net Fill.Create faces defined by enclosed edges.
910
889
 
911
890
  :param bm: The bmesh to operate on.
912
891
  :type bm: bmesh.types.BMesh
913
892
  :param edges: input edges
914
- :type edges: typing.List[bmesh.types.BMEdge]
893
+ :type edges: list[bmesh.types.BMEdge]
915
894
  :param mat_nr: material to use
916
895
  :type mat_nr: int
917
896
  :param use_smooth: smooth state to use
@@ -921,41 +900,41 @@ def edgenet_fill(
921
900
  :return: faces: new faces
922
901
 
923
902
  type list of (`bmesh.types.BMFace`)
924
- :rtype: typing.Dict[str, typing.Any]
903
+ :rtype: dict[str, typing.Any]
925
904
  """
926
905
 
927
906
  ...
928
907
 
929
908
  def edgenet_prepare(
930
- bm: bmesh.types.BMesh, edges: typing.List[bmesh.types.BMEdge] = []
931
- ) -> typing.Dict[str, typing.Any]:
909
+ bm: bmesh.types.BMesh, edges: list[bmesh.types.BMEdge] = []
910
+ ) -> dict[str, typing.Any]:
932
911
  """Edge-net Prepare.Identifies several useful edge loop cases and modifies them so
933
912
  they'll become a face when edgenet_fill is called. The cases covered are:
934
913
 
935
914
  :param bm: The bmesh to operate on.
936
915
  :type bm: bmesh.types.BMesh
937
916
  :param edges: input edges
938
- :type edges: typing.List[bmesh.types.BMEdge]
917
+ :type edges: list[bmesh.types.BMEdge]
939
918
  :return: edges: new edges
940
919
 
941
920
  type list of (`bmesh.types.BMEdge`)
942
- :rtype: typing.Dict[str, typing.Any]
921
+ :rtype: dict[str, typing.Any]
943
922
  """
944
923
 
945
924
  ...
946
925
 
947
926
  def extrude_discrete_faces(
948
927
  bm: bmesh.types.BMesh,
949
- faces: typing.List[bmesh.types.BMFace] = [],
928
+ faces: list[bmesh.types.BMFace] = [],
950
929
  use_normal_flip: bool = False,
951
930
  use_select_history: bool = False,
952
- ) -> typing.Dict[str, typing.Any]:
931
+ ) -> dict[str, typing.Any]:
953
932
  """Individual Face Extrude.Extrudes faces individually.
954
933
 
955
934
  :param bm: The bmesh to operate on.
956
935
  :type bm: bmesh.types.BMesh
957
936
  :param faces: input faces
958
- :type faces: typing.List[bmesh.types.BMFace]
937
+ :type faces: list[bmesh.types.BMFace]
959
938
  :param use_normal_flip: Create faces with reversed direction.
960
939
  :type use_normal_flip: bool
961
940
  :param use_select_history: pass to duplicate
@@ -963,24 +942,24 @@ def extrude_discrete_faces(
963
942
  :return: faces: output faces
964
943
 
965
944
  type list of (`bmesh.types.BMFace`)
966
- :rtype: typing.Dict[str, typing.Any]
945
+ :rtype: dict[str, typing.Any]
967
946
  """
968
947
 
969
948
  ...
970
949
 
971
950
  def extrude_edge_only(
972
951
  bm: bmesh.types.BMesh,
973
- edges: typing.List[bmesh.types.BMEdge] = [],
952
+ edges: list[bmesh.types.BMEdge] = [],
974
953
  use_normal_flip: bool = False,
975
954
  use_select_history: bool = False,
976
- ) -> typing.Dict[str, typing.Any]:
955
+ ) -> dict[str, typing.Any]:
977
956
  """Extrude Only Edges.Extrudes Edges into faces, note that this is very simple, there's no fancy
978
957
  winged extrusion.
979
958
 
980
959
  :param bm: The bmesh to operate on.
981
960
  :type bm: bmesh.types.BMesh
982
961
  :param edges: input vertices
983
- :type edges: typing.List[bmesh.types.BMEdge]
962
+ :type edges: list[bmesh.types.BMEdge]
984
963
  :param use_normal_flip: Create faces with reversed direction.
985
964
  :type use_normal_flip: bool
986
965
  :param use_select_history: pass to duplicate
@@ -988,31 +967,29 @@ def extrude_edge_only(
988
967
  :return: geom: output geometry
989
968
 
990
969
  type list of (`bmesh.types.BMVert`, `bmesh.types.BMEdge`, `bmesh.types.BMFace`)
991
- :rtype: typing.Dict[str, typing.Any]
970
+ :rtype: dict[str, typing.Any]
992
971
  """
993
972
 
994
973
  ...
995
974
 
996
975
  def extrude_face_region(
997
976
  bm: bmesh.types.BMesh,
998
- geom: typing.Union[
999
- typing.List[bmesh.types.BMVert],
1000
- typing.List[bmesh.types.BMEdge],
1001
- typing.List[bmesh.types.BMFace],
1002
- ] = [],
977
+ geom: list[bmesh.types.BMVert]
978
+ | list[bmesh.types.BMEdge]
979
+ | list[bmesh.types.BMFace] = [],
1003
980
  edges_exclude=None(),
1004
981
  use_keep_orig: bool = False,
1005
982
  use_normal_flip: bool = False,
1006
983
  use_normal_from_adjacent: bool = False,
1007
984
  use_dissolve_ortho_edges: bool = False,
1008
985
  use_select_history: bool = False,
1009
- ) -> typing.Dict[str, typing.Any]:
986
+ ) -> dict[str, typing.Any]:
1010
987
  """Extrude Faces.Extrude operator (does not transform)
1011
988
 
1012
989
  :param bm: The bmesh to operate on.
1013
990
  :type bm: bmesh.types.BMesh
1014
991
  :param geom: edges and faces
1015
- :type geom: typing.Union[typing.List[bmesh.types.BMVert], typing.List[bmesh.types.BMEdge], typing.List[bmesh.types.BMFace]]
992
+ :type geom: list[bmesh.types.BMVert] | list[bmesh.types.BMEdge] | list[bmesh.types.BMFace]
1016
993
  :param edges_exclude: input edges to explicitly exclude from extrusion
1017
994
  :param use_keep_orig: keep original geometry (requires geom to include edges).
1018
995
  :type use_keep_orig: bool
@@ -1027,22 +1004,22 @@ def extrude_face_region(
1027
1004
  :return: geom:
1028
1005
 
1029
1006
  type list of (`bmesh.types.BMVert`, `bmesh.types.BMEdge`, `bmesh.types.BMFace`)
1030
- :rtype: typing.Dict[str, typing.Any]
1007
+ :rtype: dict[str, typing.Any]
1031
1008
  """
1032
1009
 
1033
1010
  ...
1034
1011
 
1035
1012
  def extrude_vert_indiv(
1036
1013
  bm: bmesh.types.BMesh,
1037
- verts: typing.List[bmesh.types.BMVert] = [],
1014
+ verts: list[bmesh.types.BMVert] = [],
1038
1015
  use_select_history: bool = False,
1039
- ) -> typing.Dict[str, typing.Any]:
1016
+ ) -> dict[str, typing.Any]:
1040
1017
  """Individual Vertex Extrude.Extrudes wire edges from vertices.
1041
1018
 
1042
1019
  :param bm: The bmesh to operate on.
1043
1020
  :type bm: bmesh.types.BMesh
1044
1021
  :param verts: input vertices
1045
- :type verts: typing.List[bmesh.types.BMVert]
1022
+ :type verts: list[bmesh.types.BMVert]
1046
1023
  :param use_select_history: pass to duplicate
1047
1024
  :type use_select_history: bool
1048
1025
  :return: edges: output wire edges
@@ -1052,23 +1029,23 @@ def extrude_vert_indiv(
1052
1029
  verts: output vertices
1053
1030
 
1054
1031
  type list of (`bmesh.types.BMVert`)
1055
- :rtype: typing.Dict[str, typing.Any]
1032
+ :rtype: dict[str, typing.Any]
1056
1033
  """
1057
1034
 
1058
1035
  ...
1059
1036
 
1060
1037
  def face_attribute_fill(
1061
1038
  bm: bmesh.types.BMesh,
1062
- faces: typing.List[bmesh.types.BMFace] = [],
1039
+ faces: list[bmesh.types.BMFace] = [],
1063
1040
  use_normals: bool = False,
1064
1041
  use_data: bool = False,
1065
- ) -> typing.Dict[str, typing.Any]:
1042
+ ) -> dict[str, typing.Any]:
1066
1043
  """Face Attribute Fill.Fill in faces with data from adjacent faces.
1067
1044
 
1068
1045
  :param bm: The bmesh to operate on.
1069
1046
  :type bm: bmesh.types.BMesh
1070
1047
  :param faces: input faces
1071
- :type faces: typing.List[bmesh.types.BMFace]
1048
+ :type faces: list[bmesh.types.BMFace]
1072
1049
  :param use_normals: copy face winding
1073
1050
  :type use_normals: bool
1074
1051
  :param use_data: copy face data
@@ -1076,17 +1053,17 @@ def face_attribute_fill(
1076
1053
  :return: faces_fail: faces that could not be handled
1077
1054
 
1078
1055
  type list of (`bmesh.types.BMFace`)
1079
- :rtype: typing.Dict[str, typing.Any]
1056
+ :rtype: dict[str, typing.Any]
1080
1057
  """
1081
1058
 
1082
1059
  ...
1083
1060
 
1084
1061
  def find_doubles(
1085
1062
  bm: bmesh.types.BMesh,
1086
- verts: typing.List[bmesh.types.BMVert] = [],
1087
- keep_verts: typing.List[bmesh.types.BMVert] = [],
1063
+ verts: list[bmesh.types.BMVert] = [],
1064
+ keep_verts: list[bmesh.types.BMVert] = [],
1088
1065
  dist: float = 0,
1089
- ) -> typing.Dict[str, typing.Any]:
1066
+ ) -> dict[str, typing.Any]:
1090
1067
  """Find Doubles.Takes input verts and find vertices they should weld to.
1091
1068
  Outputs a mapping slot suitable for use with the weld verts BMOP.If keep_verts is used, vertices outside that set can only be merged
1092
1069
  with vertices in that set.
@@ -1094,45 +1071,43 @@ def find_doubles(
1094
1071
  :param bm: The bmesh to operate on.
1095
1072
  :type bm: bmesh.types.BMesh
1096
1073
  :param verts: input vertices
1097
- :type verts: typing.List[bmesh.types.BMVert]
1074
+ :type verts: list[bmesh.types.BMVert]
1098
1075
  :param keep_verts: list of verts to keep
1099
- :type keep_verts: typing.List[bmesh.types.BMVert]
1076
+ :type keep_verts: list[bmesh.types.BMVert]
1100
1077
  :param dist: maximum distance
1101
1078
  :type dist: float
1102
1079
  :return: targetmap:
1103
1080
 
1104
1081
  type dict mapping vert/edge/face types to `bmesh.types.BMVert`/`bmesh.types.BMEdge`/`bmesh.types.BMFace`
1105
- :rtype: typing.Dict[str, typing.Any]
1082
+ :rtype: dict[str, typing.Any]
1106
1083
  """
1107
1084
 
1108
1085
  ...
1109
1086
 
1110
- def flip_quad_tessellation(
1111
- bm: bmesh.types.BMesh, faces: typing.List[bmesh.types.BMFace] = []
1112
- ):
1087
+ def flip_quad_tessellation(bm: bmesh.types.BMesh, faces: list[bmesh.types.BMFace] = []):
1113
1088
  """Flip Quad TessellationFlip the tessellation direction of the selected quads.
1114
1089
 
1115
1090
  :param bm: The bmesh to operate on.
1116
1091
  :type bm: bmesh.types.BMesh
1117
1092
  :param faces: Undocumented.
1118
- :type faces: typing.List[bmesh.types.BMFace]
1093
+ :type faces: list[bmesh.types.BMFace]
1119
1094
  """
1120
1095
 
1121
1096
  ...
1122
1097
 
1123
1098
  def grid_fill(
1124
1099
  bm: bmesh.types.BMesh,
1125
- edges: typing.List[bmesh.types.BMEdge] = [],
1100
+ edges: list[bmesh.types.BMEdge] = [],
1126
1101
  mat_nr: int = 0,
1127
1102
  use_smooth: bool = False,
1128
1103
  use_interp_simple: bool = False,
1129
- ) -> typing.Dict[str, typing.Any]:
1104
+ ) -> dict[str, typing.Any]:
1130
1105
  """Grid Fill.Create faces defined by 2 disconnected edge loops (which share edges).
1131
1106
 
1132
1107
  :param bm: The bmesh to operate on.
1133
1108
  :type bm: bmesh.types.BMesh
1134
1109
  :param edges: input edges
1135
- :type edges: typing.List[bmesh.types.BMEdge]
1110
+ :type edges: list[bmesh.types.BMEdge]
1136
1111
  :param mat_nr: material to use
1137
1112
  :type mat_nr: int
1138
1113
  :param use_smooth: smooth state to use
@@ -1142,45 +1117,45 @@ def grid_fill(
1142
1117
  :return: faces: new faces
1143
1118
 
1144
1119
  type list of (`bmesh.types.BMFace`)
1145
- :rtype: typing.Dict[str, typing.Any]
1120
+ :rtype: dict[str, typing.Any]
1146
1121
  """
1147
1122
 
1148
1123
  ...
1149
1124
 
1150
1125
  def holes_fill(
1151
- bm: bmesh.types.BMesh, edges: typing.List[bmesh.types.BMEdge] = [], sides: int = 0
1152
- ) -> typing.Dict[str, typing.Any]:
1126
+ bm: bmesh.types.BMesh, edges: list[bmesh.types.BMEdge] = [], sides: int = 0
1127
+ ) -> dict[str, typing.Any]:
1153
1128
  """Fill Holes.Fill boundary edges with faces, copying surrounding customdata.
1154
1129
 
1155
1130
  :param bm: The bmesh to operate on.
1156
1131
  :type bm: bmesh.types.BMesh
1157
1132
  :param edges: input edges
1158
- :type edges: typing.List[bmesh.types.BMEdge]
1133
+ :type edges: list[bmesh.types.BMEdge]
1159
1134
  :param sides: number of face sides to fill
1160
1135
  :type sides: int
1161
1136
  :return: faces: new faces
1162
1137
 
1163
1138
  type list of (`bmesh.types.BMFace`)
1164
- :rtype: typing.Dict[str, typing.Any]
1139
+ :rtype: dict[str, typing.Any]
1165
1140
  """
1166
1141
 
1167
1142
  ...
1168
1143
 
1169
1144
  def inset_individual(
1170
1145
  bm: bmesh.types.BMesh,
1171
- faces: typing.List[bmesh.types.BMFace] = [],
1146
+ faces: list[bmesh.types.BMFace] = [],
1172
1147
  thickness: float = 0,
1173
1148
  depth: float = 0,
1174
1149
  use_even_offset: bool = False,
1175
1150
  use_interpolate: bool = False,
1176
1151
  use_relative_offset: bool = False,
1177
- ) -> typing.Dict[str, typing.Any]:
1152
+ ) -> dict[str, typing.Any]:
1178
1153
  """Face Inset (Individual).Insets individual faces.
1179
1154
 
1180
1155
  :param bm: The bmesh to operate on.
1181
1156
  :type bm: bmesh.types.BMesh
1182
1157
  :param faces: input faces
1183
- :type faces: typing.List[bmesh.types.BMFace]
1158
+ :type faces: list[bmesh.types.BMFace]
1184
1159
  :param thickness: thickness
1185
1160
  :type thickness: float
1186
1161
  :param depth: depth
@@ -1194,15 +1169,15 @@ def inset_individual(
1194
1169
  :return: faces: output faces
1195
1170
 
1196
1171
  type list of (`bmesh.types.BMFace`)
1197
- :rtype: typing.Dict[str, typing.Any]
1172
+ :rtype: dict[str, typing.Any]
1198
1173
  """
1199
1174
 
1200
1175
  ...
1201
1176
 
1202
1177
  def inset_region(
1203
1178
  bm: bmesh.types.BMesh,
1204
- faces: typing.List[bmesh.types.BMFace] = [],
1205
- faces_exclude: typing.List[bmesh.types.BMFace] = [],
1179
+ faces: list[bmesh.types.BMFace] = [],
1180
+ faces_exclude: list[bmesh.types.BMFace] = [],
1206
1181
  use_boundary: bool = False,
1207
1182
  use_even_offset: bool = False,
1208
1183
  use_interpolate: bool = False,
@@ -1211,15 +1186,15 @@ def inset_region(
1211
1186
  thickness: float = 0,
1212
1187
  depth: float = 0,
1213
1188
  use_outset: bool = False,
1214
- ) -> typing.Dict[str, typing.Any]:
1189
+ ) -> dict[str, typing.Any]:
1215
1190
  """Face Inset (Regions).Inset or outset face regions.
1216
1191
 
1217
1192
  :param bm: The bmesh to operate on.
1218
1193
  :type bm: bmesh.types.BMesh
1219
1194
  :param faces: input faces
1220
- :type faces: typing.List[bmesh.types.BMFace]
1195
+ :type faces: list[bmesh.types.BMFace]
1221
1196
  :param faces_exclude: input faces to explicitly exclude from inset
1222
- :type faces_exclude: typing.List[bmesh.types.BMFace]
1197
+ :type faces_exclude: list[bmesh.types.BMFace]
1223
1198
  :param use_boundary: inset face boundaries
1224
1199
  :type use_boundary: bool
1225
1200
  :param use_even_offset: scale the offset to give more even thickness
@@ -1239,14 +1214,14 @@ def inset_region(
1239
1214
  :return: faces: output faces
1240
1215
 
1241
1216
  type list of (`bmesh.types.BMFace`)
1242
- :rtype: typing.Dict[str, typing.Any]
1217
+ :rtype: dict[str, typing.Any]
1243
1218
  """
1244
1219
 
1245
1220
  ...
1246
1221
 
1247
1222
  def join_triangles(
1248
1223
  bm: bmesh.types.BMesh,
1249
- faces: typing.List[bmesh.types.BMFace] = [],
1224
+ faces: list[bmesh.types.BMFace] = [],
1250
1225
  cmp_seam: bool = False,
1251
1226
  cmp_sharp: bool = False,
1252
1227
  cmp_uvs: bool = False,
@@ -1254,14 +1229,14 @@ def join_triangles(
1254
1229
  cmp_materials: bool = False,
1255
1230
  angle_face_threshold: float = 0,
1256
1231
  angle_shape_threshold: float = 0,
1257
- ) -> typing.Dict[str, typing.Any]:
1232
+ ) -> dict[str, typing.Any]:
1258
1233
  """Join Triangles.Tries to intelligently join triangles according
1259
1234
  to angle threshold and delimiters.
1260
1235
 
1261
1236
  :param bm: The bmesh to operate on.
1262
1237
  :type bm: bmesh.types.BMesh
1263
1238
  :param faces: input geometry.
1264
- :type faces: typing.List[bmesh.types.BMFace]
1239
+ :type faces: list[bmesh.types.BMFace]
1265
1240
  :param cmp_seam: Compare seam
1266
1241
  :type cmp_seam: bool
1267
1242
  :param cmp_sharp: Compare sharp
@@ -1279,7 +1254,7 @@ def join_triangles(
1279
1254
  :return: faces: joined faces
1280
1255
 
1281
1256
  type list of (`bmesh.types.BMFace`)
1282
- :rtype: typing.Dict[str, typing.Any]
1257
+ :rtype: dict[str, typing.Any]
1283
1258
  """
1284
1259
 
1285
1260
  ...
@@ -1307,19 +1282,17 @@ def mesh_to_bmesh(
1307
1282
 
1308
1283
  def mirror(
1309
1284
  bm: bmesh.types.BMesh,
1310
- geom: typing.Union[
1311
- typing.List[bmesh.types.BMVert],
1312
- typing.List[bmesh.types.BMEdge],
1313
- typing.List[bmesh.types.BMFace],
1314
- ] = [],
1315
- matrix: typing.Union[typing.Sequence[float], mathutils.Matrix] = None(4),
1285
+ geom: list[bmesh.types.BMVert]
1286
+ | list[bmesh.types.BMEdge]
1287
+ | list[bmesh.types.BMFace] = [],
1288
+ matrix: typing.Sequence[float] | mathutils.Matrix = None(4),
1316
1289
  merge_dist: float = 0,
1317
- axis: typing.Union[str, int] = "X",
1290
+ axis: str | int = "X",
1318
1291
  mirror_u: bool = False,
1319
1292
  mirror_v: bool = False,
1320
1293
  mirror_udim: bool = False,
1321
1294
  use_shapekey: bool = False,
1322
- ) -> typing.Dict[str, typing.Any]:
1295
+ ) -> dict[str, typing.Any]:
1323
1296
  """Mirror.Mirrors geometry along an axis. The resulting geometry is welded on using
1324
1297
  merge_dist. Pairs of original/mirrored vertices are welded using the merge_dist
1325
1298
  parameter (which defines the minimum distance for welding to happen).
@@ -1327,13 +1300,13 @@ def mirror(
1327
1300
  :param bm: The bmesh to operate on.
1328
1301
  :type bm: bmesh.types.BMesh
1329
1302
  :param geom: input geometry
1330
- :type geom: typing.Union[typing.List[bmesh.types.BMVert], typing.List[bmesh.types.BMEdge], typing.List[bmesh.types.BMFace]]
1303
+ :type geom: list[bmesh.types.BMVert] | list[bmesh.types.BMEdge] | list[bmesh.types.BMFace]
1331
1304
  :param matrix: matrix defining the mirror transformation
1332
- :type matrix: typing.Union[typing.Sequence[float], mathutils.Matrix]
1305
+ :type matrix: typing.Sequence[float] | mathutils.Matrix
1333
1306
  :param merge_dist: maximum distance for merging. does no merging if 0.
1334
1307
  :type merge_dist: float
1335
1308
  :param axis: the axis to use.
1336
- :type axis: typing.Union[str, int]
1309
+ :type axis: str | int
1337
1310
  :param mirror_u: mirror UVs across the u axis
1338
1311
  :type mirror_u: bool
1339
1312
  :param mirror_v: mirror UVs across the v axis
@@ -1345,7 +1318,7 @@ def mirror(
1345
1318
  :return: geom: output geometry, mirrored
1346
1319
 
1347
1320
  type list of (`bmesh.types.BMVert`, `bmesh.types.BMEdge`, `bmesh.types.BMFace`)
1348
- :rtype: typing.Dict[str, typing.Any]
1321
+ :rtype: dict[str, typing.Any]
1349
1322
  """
1350
1323
 
1351
1324
  ...
@@ -1368,37 +1341,37 @@ def object_load_bmesh(
1368
1341
 
1369
1342
  def offset_edgeloops(
1370
1343
  bm: bmesh.types.BMesh,
1371
- edges: typing.List[bmesh.types.BMEdge] = [],
1344
+ edges: list[bmesh.types.BMEdge] = [],
1372
1345
  use_cap_endpoint: bool = False,
1373
- ) -> typing.Dict[str, typing.Any]:
1346
+ ) -> dict[str, typing.Any]:
1374
1347
  """Edge-loop Offset.Creates edge loops based on simple edge-outset method.
1375
1348
 
1376
1349
  :param bm: The bmesh to operate on.
1377
1350
  :type bm: bmesh.types.BMesh
1378
1351
  :param edges: input edges
1379
- :type edges: typing.List[bmesh.types.BMEdge]
1352
+ :type edges: list[bmesh.types.BMEdge]
1380
1353
  :param use_cap_endpoint: extend loop around end-points
1381
1354
  :type use_cap_endpoint: bool
1382
1355
  :return: edges: output edges
1383
1356
 
1384
1357
  type list of (`bmesh.types.BMEdge`)
1385
- :rtype: typing.Dict[str, typing.Any]
1358
+ :rtype: dict[str, typing.Any]
1386
1359
  """
1387
1360
 
1388
1361
  ...
1389
1362
 
1390
1363
  def planar_faces(
1391
1364
  bm: bmesh.types.BMesh,
1392
- faces: typing.List[bmesh.types.BMFace] = [],
1365
+ faces: list[bmesh.types.BMFace] = [],
1393
1366
  iterations: int = 0,
1394
1367
  factor: float = 0,
1395
- ) -> typing.Dict[str, typing.Any]:
1368
+ ) -> dict[str, typing.Any]:
1396
1369
  """Planar Faces.Iteratively flatten faces.
1397
1370
 
1398
1371
  :param bm: The bmesh to operate on.
1399
1372
  :type bm: bmesh.types.BMesh
1400
1373
  :param faces: input geometry.
1401
- :type faces: typing.List[bmesh.types.BMFace]
1374
+ :type faces: list[bmesh.types.BMFace]
1402
1375
  :param iterations: Number of times to flatten faces (for when connected faces are used)
1403
1376
  :type iterations: int
1404
1377
  :param factor: Influence for making planar each iteration
@@ -1406,31 +1379,31 @@ def planar_faces(
1406
1379
  :return: geom: output slot, computed boundary geometry.
1407
1380
 
1408
1381
  type list of (`bmesh.types.BMVert`, `bmesh.types.BMEdge`, `bmesh.types.BMFace`)
1409
- :rtype: typing.Dict[str, typing.Any]
1382
+ :rtype: dict[str, typing.Any]
1410
1383
  """
1411
1384
 
1412
1385
  ...
1413
1386
 
1414
1387
  def pointmerge(
1415
1388
  bm: bmesh.types.BMesh,
1416
- verts: typing.List[bmesh.types.BMVert] = [],
1417
- merge_co: typing.Union[typing.Sequence[float], mathutils.Vector] = None(),
1389
+ verts: list[bmesh.types.BMVert] = [],
1390
+ merge_co: typing.Sequence[float] | mathutils.Vector = None(),
1418
1391
  ):
1419
1392
  """Point Merge.Merge verts together at a point.
1420
1393
 
1421
1394
  :param bm: The bmesh to operate on.
1422
1395
  :type bm: bmesh.types.BMesh
1423
1396
  :param verts: input vertices (all verts will be merged into the first).
1424
- :type verts: typing.List[bmesh.types.BMVert]
1397
+ :type verts: list[bmesh.types.BMVert]
1425
1398
  :param merge_co: Position to merge at.
1426
- :type merge_co: typing.Union[typing.Sequence[float], mathutils.Vector]
1399
+ :type merge_co: typing.Sequence[float] | mathutils.Vector
1427
1400
  """
1428
1401
 
1429
1402
  ...
1430
1403
 
1431
1404
  def pointmerge_facedata(
1432
1405
  bm: bmesh.types.BMesh,
1433
- verts: typing.List[bmesh.types.BMVert] = [],
1406
+ verts: list[bmesh.types.BMVert] = [],
1434
1407
  vert_snap: bmesh.types.BMVert = None,
1435
1408
  ):
1436
1409
  """Face-Data Point Merge.Merge uv/vcols at a specific vertex.
@@ -1438,7 +1411,7 @@ def pointmerge_facedata(
1438
1411
  :param bm: The bmesh to operate on.
1439
1412
  :type bm: bmesh.types.BMesh
1440
1413
  :param verts: input vertices
1441
- :type verts: typing.List[bmesh.types.BMVert]
1414
+ :type verts: list[bmesh.types.BMVert]
1442
1415
  :param vert_snap: snap vertex
1443
1416
  :type vert_snap: bmesh.types.BMVert
1444
1417
  """
@@ -1447,21 +1420,21 @@ def pointmerge_facedata(
1447
1420
 
1448
1421
  def poke(
1449
1422
  bm: bmesh.types.BMesh,
1450
- faces: typing.List[bmesh.types.BMFace] = [],
1423
+ faces: list[bmesh.types.BMFace] = [],
1451
1424
  offset: float = 0,
1452
- center_mode: typing.Union[str, int] = "MEAN_WEIGHTED",
1425
+ center_mode: str | int = "MEAN_WEIGHTED",
1453
1426
  use_relative_offset: bool = False,
1454
- ) -> typing.Dict[str, typing.Any]:
1427
+ ) -> dict[str, typing.Any]:
1455
1428
  """Pokes a face.Splits a face into a triangle fan.
1456
1429
 
1457
1430
  :param bm: The bmesh to operate on.
1458
1431
  :type bm: bmesh.types.BMesh
1459
1432
  :param faces: input faces
1460
- :type faces: typing.List[bmesh.types.BMFace]
1433
+ :type faces: list[bmesh.types.BMFace]
1461
1434
  :param offset: center vertex offset along normal
1462
1435
  :type offset: float
1463
1436
  :param center_mode: calculation mode for center vertex
1464
- :type center_mode: typing.Union[str, int]
1437
+ :type center_mode: str | int
1465
1438
  :param use_relative_offset: apply offset
1466
1439
  :type use_relative_offset: bool
1467
1440
  :return: verts: output verts
@@ -1471,35 +1444,31 @@ def poke(
1471
1444
  faces: output faces
1472
1445
 
1473
1446
  type list of (`bmesh.types.BMFace`)
1474
- :rtype: typing.Dict[str, typing.Any]
1447
+ :rtype: dict[str, typing.Any]
1475
1448
  """
1476
1449
 
1477
1450
  ...
1478
1451
 
1479
- def recalc_face_normals(
1480
- bm: bmesh.types.BMesh, faces: typing.List[bmesh.types.BMFace] = []
1481
- ):
1452
+ def recalc_face_normals(bm: bmesh.types.BMesh, faces: list[bmesh.types.BMFace] = []):
1482
1453
  """Right-Hand Faces.Computes an "outside" normal for the specified input faces.
1483
1454
 
1484
1455
  :param bm: The bmesh to operate on.
1485
1456
  :type bm: bmesh.types.BMesh
1486
1457
  :param faces: input faces
1487
- :type faces: typing.List[bmesh.types.BMFace]
1458
+ :type faces: list[bmesh.types.BMFace]
1488
1459
  """
1489
1460
 
1490
1461
  ...
1491
1462
 
1492
1463
  def region_extend(
1493
1464
  bm: bmesh.types.BMesh,
1494
- geom: typing.Union[
1495
- typing.List[bmesh.types.BMVert],
1496
- typing.List[bmesh.types.BMEdge],
1497
- typing.List[bmesh.types.BMFace],
1498
- ] = [],
1465
+ geom: list[bmesh.types.BMVert]
1466
+ | list[bmesh.types.BMEdge]
1467
+ | list[bmesh.types.BMFace] = [],
1499
1468
  use_contract: bool = False,
1500
1469
  use_faces: bool = False,
1501
1470
  use_face_step: bool = False,
1502
- ) -> typing.Dict[str, typing.Any]:
1471
+ ) -> dict[str, typing.Any]:
1503
1472
  """Region Extend.used to implement the select more/less tools.
1504
1473
  this puts some geometry surrounding regions of
1505
1474
  geometry in geom into geom.out.if use_faces is 0 then geom.out spits out verts and edges,
@@ -1508,7 +1477,7 @@ def region_extend(
1508
1477
  :param bm: The bmesh to operate on.
1509
1478
  :type bm: bmesh.types.BMesh
1510
1479
  :param geom: input geometry
1511
- :type geom: typing.Union[typing.List[bmesh.types.BMVert], typing.List[bmesh.types.BMEdge], typing.List[bmesh.types.BMFace]]
1480
+ :type geom: list[bmesh.types.BMVert] | list[bmesh.types.BMEdge] | list[bmesh.types.BMFace]
1512
1481
  :param use_contract: find boundary inside the regions, not outside.
1513
1482
  :type use_contract: bool
1514
1483
  :param use_faces: extend from faces instead of edges
@@ -1518,13 +1487,13 @@ def region_extend(
1518
1487
  :return: geom: output slot, computed boundary geometry.
1519
1488
 
1520
1489
  type list of (`bmesh.types.BMVert`, `bmesh.types.BMEdge`, `bmesh.types.BMFace`)
1521
- :rtype: typing.Dict[str, typing.Any]
1490
+ :rtype: dict[str, typing.Any]
1522
1491
  """
1523
1492
 
1524
1493
  ...
1525
1494
 
1526
1495
  def remove_doubles(
1527
- bm: bmesh.types.BMesh, verts: typing.List[bmesh.types.BMVert] = [], dist: float = 0
1496
+ bm: bmesh.types.BMesh, verts: list[bmesh.types.BMVert] = [], dist: float = 0
1528
1497
  ):
1529
1498
  """Remove Doubles.Finds groups of vertices closer than dist and merges them together,
1530
1499
  using the weld verts BMOP.
@@ -1532,7 +1501,7 @@ def remove_doubles(
1532
1501
  :param bm: The bmesh to operate on.
1533
1502
  :type bm: bmesh.types.BMesh
1534
1503
  :param verts: input verts
1535
- :type verts: typing.List[bmesh.types.BMVert]
1504
+ :type verts: list[bmesh.types.BMVert]
1536
1505
  :param dist: minimum distance
1537
1506
  :type dist: float
1538
1507
  """
@@ -1540,16 +1509,14 @@ def remove_doubles(
1540
1509
  ...
1541
1510
 
1542
1511
  def reverse_colors(
1543
- bm: bmesh.types.BMesh,
1544
- faces: typing.List[bmesh.types.BMFace] = [],
1545
- color_index: int = 0,
1512
+ bm: bmesh.types.BMesh, faces: list[bmesh.types.BMFace] = [], color_index: int = 0
1546
1513
  ):
1547
1514
  """Color ReverseReverse the loop colors.
1548
1515
 
1549
1516
  :param bm: The bmesh to operate on.
1550
1517
  :type bm: bmesh.types.BMesh
1551
1518
  :param faces: input faces
1552
- :type faces: typing.List[bmesh.types.BMFace]
1519
+ :type faces: list[bmesh.types.BMFace]
1553
1520
  :param color_index: index into color attribute list
1554
1521
  :type color_index: int
1555
1522
  """
@@ -1558,7 +1525,7 @@ def reverse_colors(
1558
1525
 
1559
1526
  def reverse_faces(
1560
1527
  bm: bmesh.types.BMesh,
1561
- faces: typing.List[bmesh.types.BMFace] = [],
1528
+ faces: list[bmesh.types.BMFace] = [],
1562
1529
  flip_multires: bool = False,
1563
1530
  ):
1564
1531
  """Reverse Faces.Reverses the winding (vertex order) of faces.
@@ -1567,30 +1534,30 @@ def reverse_faces(
1567
1534
  :param bm: The bmesh to operate on.
1568
1535
  :type bm: bmesh.types.BMesh
1569
1536
  :param faces: input faces
1570
- :type faces: typing.List[bmesh.types.BMFace]
1537
+ :type faces: list[bmesh.types.BMFace]
1571
1538
  :param flip_multires: maintain multi-res offset
1572
1539
  :type flip_multires: bool
1573
1540
  """
1574
1541
 
1575
1542
  ...
1576
1543
 
1577
- def reverse_uvs(bm: bmesh.types.BMesh, faces: typing.List[bmesh.types.BMFace] = []):
1544
+ def reverse_uvs(bm: bmesh.types.BMesh, faces: list[bmesh.types.BMFace] = []):
1578
1545
  """UV Reverse.Reverse the UVs
1579
1546
 
1580
1547
  :param bm: The bmesh to operate on.
1581
1548
  :type bm: bmesh.types.BMesh
1582
1549
  :param faces: input faces
1583
- :type faces: typing.List[bmesh.types.BMFace]
1550
+ :type faces: list[bmesh.types.BMFace]
1584
1551
  """
1585
1552
 
1586
1553
  ...
1587
1554
 
1588
1555
  def rotate(
1589
1556
  bm: bmesh.types.BMesh,
1590
- cent: typing.Union[typing.Sequence[float], mathutils.Vector] = None(),
1591
- matrix: typing.Union[typing.Sequence[float], mathutils.Matrix] = None(4),
1592
- verts: typing.List[bmesh.types.BMVert] = [],
1593
- space: typing.Union[typing.Sequence[float], mathutils.Matrix] = None(4),
1557
+ cent: typing.Sequence[float] | mathutils.Vector = None(),
1558
+ matrix: typing.Sequence[float] | mathutils.Matrix = None(4),
1559
+ verts: list[bmesh.types.BMVert] = [],
1560
+ space: typing.Sequence[float] | mathutils.Matrix = None(4),
1594
1561
  use_shapekey: bool = False,
1595
1562
  ):
1596
1563
  """Rotate.Rotate vertices around a center, using a 3x3 rotation matrix.
@@ -1598,13 +1565,13 @@ def rotate(
1598
1565
  :param bm: The bmesh to operate on.
1599
1566
  :type bm: bmesh.types.BMesh
1600
1567
  :param cent: center of rotation
1601
- :type cent: typing.Union[typing.Sequence[float], mathutils.Vector]
1568
+ :type cent: typing.Sequence[float] | mathutils.Vector
1602
1569
  :param matrix: matrix defining rotation
1603
- :type matrix: typing.Union[typing.Sequence[float], mathutils.Matrix]
1570
+ :type matrix: typing.Sequence[float] | mathutils.Matrix
1604
1571
  :param verts: input vertices
1605
- :type verts: typing.List[bmesh.types.BMVert]
1572
+ :type verts: list[bmesh.types.BMVert]
1606
1573
  :param space: matrix to define the space (typically object matrix)
1607
- :type space: typing.Union[typing.Sequence[float], mathutils.Matrix]
1574
+ :type space: typing.Sequence[float] | mathutils.Matrix
1608
1575
  :param use_shapekey: Transform shape keys too.
1609
1576
  :type use_shapekey: bool
1610
1577
  """
@@ -1613,7 +1580,7 @@ def rotate(
1613
1580
 
1614
1581
  def rotate_colors(
1615
1582
  bm: bmesh.types.BMesh,
1616
- faces: typing.List[bmesh.types.BMFace] = [],
1583
+ faces: list[bmesh.types.BMFace] = [],
1617
1584
  use_ccw: bool = False,
1618
1585
  color_index: int = 0,
1619
1586
  ):
@@ -1622,7 +1589,7 @@ def rotate_colors(
1622
1589
  :param bm: The bmesh to operate on.
1623
1590
  :type bm: bmesh.types.BMesh
1624
1591
  :param faces: input faces
1625
- :type faces: typing.List[bmesh.types.BMFace]
1592
+ :type faces: list[bmesh.types.BMFace]
1626
1593
  :param use_ccw: rotate counter-clockwise if true, otherwise clockwise
1627
1594
  :type use_ccw: bool
1628
1595
  :param color_index: index into color attribute list
@@ -1632,38 +1599,34 @@ def rotate_colors(
1632
1599
  ...
1633
1600
 
1634
1601
  def rotate_edges(
1635
- bm: bmesh.types.BMesh,
1636
- edges: typing.List[bmesh.types.BMEdge] = [],
1637
- use_ccw: bool = False,
1638
- ) -> typing.Dict[str, typing.Any]:
1602
+ bm: bmesh.types.BMesh, edges: list[bmesh.types.BMEdge] = [], use_ccw: bool = False
1603
+ ) -> dict[str, typing.Any]:
1639
1604
  """Edge Rotate.Rotates edges topologically. Also known as "spin edge" to some people.
1640
1605
  Simple example: [/] becomes [|] then [].
1641
1606
 
1642
1607
  :param bm: The bmesh to operate on.
1643
1608
  :type bm: bmesh.types.BMesh
1644
1609
  :param edges: input edges
1645
- :type edges: typing.List[bmesh.types.BMEdge]
1610
+ :type edges: list[bmesh.types.BMEdge]
1646
1611
  :param use_ccw: rotate edge counter-clockwise if true, otherwise clockwise
1647
1612
  :type use_ccw: bool
1648
1613
  :return: edges: newly spun edges
1649
1614
 
1650
1615
  type list of (`bmesh.types.BMEdge`)
1651
- :rtype: typing.Dict[str, typing.Any]
1616
+ :rtype: dict[str, typing.Any]
1652
1617
  """
1653
1618
 
1654
1619
  ...
1655
1620
 
1656
1621
  def rotate_uvs(
1657
- bm: bmesh.types.BMesh,
1658
- faces: typing.List[bmesh.types.BMFace] = [],
1659
- use_ccw: bool = False,
1622
+ bm: bmesh.types.BMesh, faces: list[bmesh.types.BMFace] = [], use_ccw: bool = False
1660
1623
  ):
1661
1624
  """UV Rotation.Cycle the loop UVs
1662
1625
 
1663
1626
  :param bm: The bmesh to operate on.
1664
1627
  :type bm: bmesh.types.BMesh
1665
1628
  :param faces: input faces
1666
- :type faces: typing.List[bmesh.types.BMFace]
1629
+ :type faces: list[bmesh.types.BMFace]
1667
1630
  :param use_ccw: rotate counter-clockwise if true, otherwise clockwise
1668
1631
  :type use_ccw: bool
1669
1632
  """
@@ -1672,9 +1635,9 @@ def rotate_uvs(
1672
1635
 
1673
1636
  def scale(
1674
1637
  bm: bmesh.types.BMesh,
1675
- vec: typing.Union[typing.Sequence[float], mathutils.Vector] = None(),
1676
- space: typing.Union[typing.Sequence[float], mathutils.Matrix] = None(4),
1677
- verts: typing.List[bmesh.types.BMVert] = [],
1638
+ vec: typing.Sequence[float] | mathutils.Vector = None(),
1639
+ space: typing.Sequence[float] | mathutils.Matrix = None(4),
1640
+ verts: list[bmesh.types.BMVert] = [],
1678
1641
  use_shapekey: bool = False,
1679
1642
  ):
1680
1643
  """Scale.Scales vertices by an offset.
@@ -1682,11 +1645,11 @@ def scale(
1682
1645
  :param bm: The bmesh to operate on.
1683
1646
  :type bm: bmesh.types.BMesh
1684
1647
  :param vec: scale factor
1685
- :type vec: typing.Union[typing.Sequence[float], mathutils.Vector]
1648
+ :type vec: typing.Sequence[float] | mathutils.Vector
1686
1649
  :param space: matrix to define the space (typically object matrix)
1687
- :type space: typing.Union[typing.Sequence[float], mathutils.Matrix]
1650
+ :type space: typing.Sequence[float] | mathutils.Matrix
1688
1651
  :param verts: input vertices
1689
- :type verts: typing.List[bmesh.types.BMVert]
1652
+ :type verts: list[bmesh.types.BMVert]
1690
1653
  :param use_shapekey: Transform shape keys too.
1691
1654
  :type use_shapekey: bool
1692
1655
  """
@@ -1695,7 +1658,7 @@ def scale(
1695
1658
 
1696
1659
  def smooth_laplacian_vert(
1697
1660
  bm: bmesh.types.BMesh,
1698
- verts: typing.List[bmesh.types.BMVert] = [],
1661
+ verts: list[bmesh.types.BMVert] = [],
1699
1662
  lambda_factor: float = 0,
1700
1663
  lambda_border: float = 0,
1701
1664
  use_x: bool = False,
@@ -1709,7 +1672,7 @@ def smooth_laplacian_vert(
1709
1672
  :param bm: The bmesh to operate on.
1710
1673
  :type bm: bmesh.types.BMesh
1711
1674
  :param verts: input vertices
1712
- :type verts: typing.List[bmesh.types.BMVert]
1675
+ :type verts: list[bmesh.types.BMVert]
1713
1676
  :param lambda_factor: lambda param
1714
1677
  :type lambda_factor: float
1715
1678
  :param lambda_border: lambda param in border
@@ -1728,7 +1691,7 @@ def smooth_laplacian_vert(
1728
1691
 
1729
1692
  def smooth_vert(
1730
1693
  bm: bmesh.types.BMesh,
1731
- verts: typing.List[bmesh.types.BMVert] = [],
1694
+ verts: list[bmesh.types.BMVert] = [],
1732
1695
  factor: float = 0,
1733
1696
  mirror_clip_x: bool = False,
1734
1697
  mirror_clip_y: bool = False,
@@ -1743,7 +1706,7 @@ def smooth_vert(
1743
1706
  :param bm: The bmesh to operate on.
1744
1707
  :type bm: bmesh.types.BMesh
1745
1708
  :param verts: input vertices
1746
- :type verts: typing.List[bmesh.types.BMVert]
1709
+ :type verts: list[bmesh.types.BMVert]
1747
1710
  :param factor: smoothing factor
1748
1711
  :type factor: float
1749
1712
  :param mirror_clip_x: set vertices close to the x axis before the operation to 0
@@ -1766,63 +1729,59 @@ def smooth_vert(
1766
1729
 
1767
1730
  def solidify(
1768
1731
  bm: bmesh.types.BMesh,
1769
- geom: typing.Union[
1770
- typing.List[bmesh.types.BMVert],
1771
- typing.List[bmesh.types.BMEdge],
1772
- typing.List[bmesh.types.BMFace],
1773
- ] = [],
1732
+ geom: list[bmesh.types.BMVert]
1733
+ | list[bmesh.types.BMEdge]
1734
+ | list[bmesh.types.BMFace] = [],
1774
1735
  thickness: float = 0,
1775
- ) -> typing.Dict[str, typing.Any]:
1736
+ ) -> dict[str, typing.Any]:
1776
1737
  """Solidify.Turns a mesh into a shell with thickness
1777
1738
 
1778
1739
  :param bm: The bmesh to operate on.
1779
1740
  :type bm: bmesh.types.BMesh
1780
1741
  :param geom: input geometry
1781
- :type geom: typing.Union[typing.List[bmesh.types.BMVert], typing.List[bmesh.types.BMEdge], typing.List[bmesh.types.BMFace]]
1742
+ :type geom: list[bmesh.types.BMVert] | list[bmesh.types.BMEdge] | list[bmesh.types.BMFace]
1782
1743
  :param thickness: thickness
1783
1744
  :type thickness: float
1784
1745
  :return: geom:
1785
1746
 
1786
1747
  type list of (`bmesh.types.BMVert`, `bmesh.types.BMEdge`, `bmesh.types.BMFace`)
1787
- :rtype: typing.Dict[str, typing.Any]
1748
+ :rtype: dict[str, typing.Any]
1788
1749
  """
1789
1750
 
1790
1751
  ...
1791
1752
 
1792
1753
  def spin(
1793
1754
  bm: bmesh.types.BMesh,
1794
- geom: typing.Union[
1795
- typing.List[bmesh.types.BMVert],
1796
- typing.List[bmesh.types.BMEdge],
1797
- typing.List[bmesh.types.BMFace],
1798
- ] = [],
1799
- cent: typing.Union[typing.Sequence[float], mathutils.Vector] = None(),
1800
- axis: typing.Union[typing.Sequence[float], mathutils.Vector] = None(),
1801
- dvec: typing.Union[typing.Sequence[float], mathutils.Vector] = None(),
1755
+ geom: list[bmesh.types.BMVert]
1756
+ | list[bmesh.types.BMEdge]
1757
+ | list[bmesh.types.BMFace] = [],
1758
+ cent: typing.Sequence[float] | mathutils.Vector = None(),
1759
+ axis: typing.Sequence[float] | mathutils.Vector = None(),
1760
+ dvec: typing.Sequence[float] | mathutils.Vector = None(),
1802
1761
  angle: float = 0,
1803
- space: typing.Union[typing.Sequence[float], mathutils.Matrix] = None(4),
1762
+ space: typing.Sequence[float] | mathutils.Matrix = None(4),
1804
1763
  steps: int = 0,
1805
1764
  use_merge: bool = False,
1806
1765
  use_normal_flip: bool = False,
1807
1766
  use_duplicate: bool = False,
1808
- ) -> typing.Dict[str, typing.Any]:
1767
+ ) -> dict[str, typing.Any]:
1809
1768
  """Spin.Extrude or duplicate geometry a number of times,
1810
1769
  rotating and possibly translating after each step
1811
1770
 
1812
1771
  :param bm: The bmesh to operate on.
1813
1772
  :type bm: bmesh.types.BMesh
1814
1773
  :param geom: input geometry
1815
- :type geom: typing.Union[typing.List[bmesh.types.BMVert], typing.List[bmesh.types.BMEdge], typing.List[bmesh.types.BMFace]]
1774
+ :type geom: list[bmesh.types.BMVert] | list[bmesh.types.BMEdge] | list[bmesh.types.BMFace]
1816
1775
  :param cent: rotation center
1817
- :type cent: typing.Union[typing.Sequence[float], mathutils.Vector]
1776
+ :type cent: typing.Sequence[float] | mathutils.Vector
1818
1777
  :param axis: rotation axis
1819
- :type axis: typing.Union[typing.Sequence[float], mathutils.Vector]
1778
+ :type axis: typing.Sequence[float] | mathutils.Vector
1820
1779
  :param dvec: translation delta per step
1821
- :type dvec: typing.Union[typing.Sequence[float], mathutils.Vector]
1780
+ :type dvec: typing.Sequence[float] | mathutils.Vector
1822
1781
  :param angle: total rotation angle (radians)
1823
1782
  :type angle: float
1824
1783
  :param space: matrix to define the space (typically object matrix)
1825
- :type space: typing.Union[typing.Sequence[float], mathutils.Matrix]
1784
+ :type space: typing.Sequence[float] | mathutils.Matrix
1826
1785
  :param steps: number of steps
1827
1786
  :type steps: int
1828
1787
  :param use_merge: Merge first/last when the angle is a full revolution.
@@ -1834,28 +1793,26 @@ def spin(
1834
1793
  :return: geom_last: result of last step
1835
1794
 
1836
1795
  type list of (`bmesh.types.BMVert`, `bmesh.types.BMEdge`, `bmesh.types.BMFace`)
1837
- :rtype: typing.Dict[str, typing.Any]
1796
+ :rtype: dict[str, typing.Any]
1838
1797
  """
1839
1798
 
1840
1799
  ...
1841
1800
 
1842
1801
  def split(
1843
1802
  bm: bmesh.types.BMesh,
1844
- geom: typing.Union[
1845
- typing.List[bmesh.types.BMVert],
1846
- typing.List[bmesh.types.BMEdge],
1847
- typing.List[bmesh.types.BMFace],
1848
- ] = [],
1803
+ geom: list[bmesh.types.BMVert]
1804
+ | list[bmesh.types.BMEdge]
1805
+ | list[bmesh.types.BMFace] = [],
1849
1806
  dest: bmesh.types.BMesh = None,
1850
1807
  use_only_faces: bool = False,
1851
- ) -> typing.Dict[str, typing.Any]:
1808
+ ) -> dict[str, typing.Any]:
1852
1809
  """Split Off Geometry.Disconnect geometry from adjacent edges and faces,
1853
1810
  optionally into a destination mesh.
1854
1811
 
1855
1812
  :param bm: The bmesh to operate on.
1856
1813
  :type bm: bmesh.types.BMesh
1857
1814
  :param geom: input geometry
1858
- :type geom: typing.Union[typing.List[bmesh.types.BMVert], typing.List[bmesh.types.BMEdge], typing.List[bmesh.types.BMFace]]
1815
+ :type geom: list[bmesh.types.BMVert] | list[bmesh.types.BMEdge] | list[bmesh.types.BMFace]
1859
1816
  :param dest: destination bmesh, if None will use current one
1860
1817
  :type dest: bmesh.types.BMesh
1861
1818
  :param use_only_faces: when enabled. don't duplicate loose verts/edges
@@ -1871,97 +1828,97 @@ def split(
1871
1828
  isovert_map:
1872
1829
 
1873
1830
  type dict mapping vert/edge/face types to `bmesh.types.BMVert`/`bmesh.types.BMEdge`/`bmesh.types.BMFace`
1874
- :rtype: typing.Dict[str, typing.Any]
1831
+ :rtype: dict[str, typing.Any]
1875
1832
  """
1876
1833
 
1877
1834
  ...
1878
1835
 
1879
1836
  def split_edges(
1880
1837
  bm: bmesh.types.BMesh,
1881
- edges: typing.List[bmesh.types.BMEdge] = [],
1882
- verts: typing.List[bmesh.types.BMVert] = [],
1838
+ edges: list[bmesh.types.BMEdge] = [],
1839
+ verts: list[bmesh.types.BMVert] = [],
1883
1840
  use_verts: bool = False,
1884
- ) -> typing.Dict[str, typing.Any]:
1841
+ ) -> dict[str, typing.Any]:
1885
1842
  """Edge Split.Disconnects faces along input edges.
1886
1843
 
1887
1844
  :param bm: The bmesh to operate on.
1888
1845
  :type bm: bmesh.types.BMesh
1889
1846
  :param edges: input edges
1890
- :type edges: typing.List[bmesh.types.BMEdge]
1847
+ :type edges: list[bmesh.types.BMEdge]
1891
1848
  :param verts: optional tag verts, use to have greater control of splits
1892
- :type verts: typing.List[bmesh.types.BMVert]
1849
+ :type verts: list[bmesh.types.BMVert]
1893
1850
  :param use_verts: use 'verts' for splitting, else just find verts to split from edges
1894
1851
  :type use_verts: bool
1895
1852
  :return: edges: old output disconnected edges
1896
1853
 
1897
1854
  type list of (`bmesh.types.BMEdge`)
1898
- :rtype: typing.Dict[str, typing.Any]
1855
+ :rtype: dict[str, typing.Any]
1899
1856
  """
1900
1857
 
1901
1858
  ...
1902
1859
 
1903
1860
  def subdivide_edgering(
1904
1861
  bm: bmesh.types.BMesh,
1905
- edges: typing.List[bmesh.types.BMEdge] = [],
1906
- interp_mode: typing.Union[str, int] = "LINEAR",
1862
+ edges: list[bmesh.types.BMEdge] = [],
1863
+ interp_mode: str | int = "LINEAR",
1907
1864
  smooth: float = 0,
1908
1865
  cuts: int = 0,
1909
- profile_shape: typing.Union[str, int] = "SMOOTH",
1866
+ profile_shape: str | int = "SMOOTH",
1910
1867
  profile_shape_factor: float = 0,
1911
- ) -> typing.Dict[str, typing.Any]:
1868
+ ) -> dict[str, typing.Any]:
1912
1869
  """Subdivide Edge-Ring.Take an edge-ring, and subdivide with interpolation options.
1913
1870
 
1914
1871
  :param bm: The bmesh to operate on.
1915
1872
  :type bm: bmesh.types.BMesh
1916
1873
  :param edges: input vertices
1917
- :type edges: typing.List[bmesh.types.BMEdge]
1874
+ :type edges: list[bmesh.types.BMEdge]
1918
1875
  :param interp_mode: interpolation method
1919
- :type interp_mode: typing.Union[str, int]
1876
+ :type interp_mode: str | int
1920
1877
  :param smooth: smoothness factor
1921
1878
  :type smooth: float
1922
1879
  :param cuts: number of cuts
1923
1880
  :type cuts: int
1924
1881
  :param profile_shape: profile shape type
1925
- :type profile_shape: typing.Union[str, int]
1882
+ :type profile_shape: str | int
1926
1883
  :param profile_shape_factor: how much intermediary new edges are shrunk/expanded
1927
1884
  :type profile_shape_factor: float
1928
1885
  :return: faces: output faces
1929
1886
 
1930
1887
  type list of (`bmesh.types.BMFace`)
1931
- :rtype: typing.Dict[str, typing.Any]
1888
+ :rtype: dict[str, typing.Any]
1932
1889
  """
1933
1890
 
1934
1891
  ...
1935
1892
 
1936
1893
  def subdivide_edges(
1937
1894
  bm: bmesh.types.BMesh,
1938
- edges: typing.List[bmesh.types.BMEdge] = [],
1895
+ edges: list[bmesh.types.BMEdge] = [],
1939
1896
  smooth: float = 0,
1940
- smooth_falloff: typing.Union[str, int] = "SMOOTH",
1897
+ smooth_falloff: str | int = "SMOOTH",
1941
1898
  fractal: float = 0,
1942
1899
  along_normal: float = 0,
1943
1900
  cuts: int = 0,
1944
1901
  seed: int = 0,
1945
1902
  custom_patterns={},
1946
1903
  edge_percents={},
1947
- quad_corner_type: typing.Union[str, int] = "STRAIGHT_CUT",
1904
+ quad_corner_type: str | int = "STRAIGHT_CUT",
1948
1905
  use_grid_fill: bool = False,
1949
1906
  use_single_edge: bool = False,
1950
1907
  use_only_quads: bool = False,
1951
1908
  use_sphere: bool = False,
1952
1909
  use_smooth_even: bool = False,
1953
- ) -> typing.Dict[str, typing.Any]:
1910
+ ) -> dict[str, typing.Any]:
1954
1911
  """Subdivide Edges.Advanced operator for subdividing edges
1955
1912
  with options for face patterns, smoothing and randomization.
1956
1913
 
1957
1914
  :param bm: The bmesh to operate on.
1958
1915
  :type bm: bmesh.types.BMesh
1959
1916
  :param edges: input edges
1960
- :type edges: typing.List[bmesh.types.BMEdge]
1917
+ :type edges: list[bmesh.types.BMEdge]
1961
1918
  :param smooth: smoothness factor
1962
1919
  :type smooth: float
1963
1920
  :param smooth_falloff: smooth falloff type
1964
- :type smooth_falloff: typing.Union[str, int]
1921
+ :type smooth_falloff: str | int
1965
1922
  :param fractal: fractal randomness factor
1966
1923
  :type fractal: float
1967
1924
  :param along_normal: apply fractal displacement along normal only
@@ -1973,7 +1930,7 @@ def subdivide_edges(
1973
1930
  :param custom_patterns: uses custom pointers
1974
1931
  :param edge_percents: Undocumented.
1975
1932
  :param quad_corner_type: quad corner type
1976
- :type quad_corner_type: typing.Union[str, int]
1933
+ :type quad_corner_type: str | int
1977
1934
  :param use_grid_fill: fill in fully-selected faces with a grid
1978
1935
  :type use_grid_fill: bool
1979
1936
  :param use_single_edge: tessellate the case of one edge selected in a quad or triangle
@@ -1995,22 +1952,20 @@ def subdivide_edges(
1995
1952
  geom: contains all output geometry
1996
1953
 
1997
1954
  type list of (`bmesh.types.BMVert`, `bmesh.types.BMEdge`, `bmesh.types.BMFace`)
1998
- :rtype: typing.Dict[str, typing.Any]
1955
+ :rtype: dict[str, typing.Any]
1999
1956
  """
2000
1957
 
2001
1958
  ...
2002
1959
 
2003
1960
  def symmetrize(
2004
1961
  bm: bmesh.types.BMesh,
2005
- input: typing.Union[
2006
- typing.List[bmesh.types.BMVert],
2007
- typing.List[bmesh.types.BMEdge],
2008
- typing.List[bmesh.types.BMFace],
2009
- ] = [],
2010
- direction: typing.Union[str, int] = "-X",
1962
+ input: list[bmesh.types.BMVert]
1963
+ | list[bmesh.types.BMEdge]
1964
+ | list[bmesh.types.BMFace] = [],
1965
+ direction: str | int = "-X",
2011
1966
  dist: float = 0,
2012
1967
  use_shapekey: bool = False,
2013
- ) -> typing.Dict[str, typing.Any]:
1968
+ ) -> dict[str, typing.Any]:
2014
1969
  """Symmetrize.Makes the mesh elements in the "input" slot symmetrical. Unlike
2015
1970
  normal mirroring, it only copies in one direction, as specified by
2016
1971
  the "direction" slot. The edges and faces that cross the plane of
@@ -2019,9 +1974,9 @@ def symmetrize(
2019
1974
  :param bm: The bmesh to operate on.
2020
1975
  :type bm: bmesh.types.BMesh
2021
1976
  :param input: input geometry
2022
- :type input: typing.Union[typing.List[bmesh.types.BMVert], typing.List[bmesh.types.BMEdge], typing.List[bmesh.types.BMFace]]
1977
+ :type input: list[bmesh.types.BMVert] | list[bmesh.types.BMEdge] | list[bmesh.types.BMFace]
2023
1978
  :param direction: axis to use
2024
- :type direction: typing.Union[str, int]
1979
+ :type direction: str | int
2025
1980
  :param dist: minimum distance
2026
1981
  :type dist: float
2027
1982
  :param use_shapekey: Transform shape keys too.
@@ -2029,16 +1984,16 @@ def symmetrize(
2029
1984
  :return: geom:
2030
1985
 
2031
1986
  type list of (`bmesh.types.BMVert`, `bmesh.types.BMEdge`, `bmesh.types.BMFace`)
2032
- :rtype: typing.Dict[str, typing.Any]
1987
+ :rtype: dict[str, typing.Any]
2033
1988
  """
2034
1989
 
2035
1990
  ...
2036
1991
 
2037
1992
  def transform(
2038
1993
  bm: bmesh.types.BMesh,
2039
- matrix: typing.Union[typing.Sequence[float], mathutils.Matrix] = None(4),
2040
- space: typing.Union[typing.Sequence[float], mathutils.Matrix] = None(4),
2041
- verts: typing.List[bmesh.types.BMVert] = [],
1994
+ matrix: typing.Sequence[float] | mathutils.Matrix = None(4),
1995
+ space: typing.Sequence[float] | mathutils.Matrix = None(4),
1996
+ verts: list[bmesh.types.BMVert] = [],
2042
1997
  use_shapekey: bool = False,
2043
1998
  ):
2044
1999
  """Transform.Transforms a set of vertices by a matrix. Multiplies
@@ -2047,11 +2002,11 @@ def transform(
2047
2002
  :param bm: The bmesh to operate on.
2048
2003
  :type bm: bmesh.types.BMesh
2049
2004
  :param matrix: transform matrix
2050
- :type matrix: typing.Union[typing.Sequence[float], mathutils.Matrix]
2005
+ :type matrix: typing.Sequence[float] | mathutils.Matrix
2051
2006
  :param space: matrix to define the space (typically object matrix)
2052
- :type space: typing.Union[typing.Sequence[float], mathutils.Matrix]
2007
+ :type space: typing.Sequence[float] | mathutils.Matrix
2053
2008
  :param verts: input vertices
2054
- :type verts: typing.List[bmesh.types.BMVert]
2009
+ :type verts: list[bmesh.types.BMVert]
2055
2010
  :param use_shapekey: Transform shape keys too.
2056
2011
  :type use_shapekey: bool
2057
2012
  """
@@ -2060,9 +2015,9 @@ def transform(
2060
2015
 
2061
2016
  def translate(
2062
2017
  bm: bmesh.types.BMesh,
2063
- vec: typing.Union[typing.Sequence[float], mathutils.Vector] = None(),
2064
- space: typing.Union[typing.Sequence[float], mathutils.Matrix] = None(4),
2065
- verts: typing.List[bmesh.types.BMVert] = [],
2018
+ vec: typing.Sequence[float] | mathutils.Vector = None(),
2019
+ space: typing.Sequence[float] | mathutils.Matrix = None(4),
2020
+ verts: list[bmesh.types.BMVert] = [],
2066
2021
  use_shapekey: bool = False,
2067
2022
  ):
2068
2023
  """Translate.Translate vertices by an offset.
@@ -2070,11 +2025,11 @@ def translate(
2070
2025
  :param bm: The bmesh to operate on.
2071
2026
  :type bm: bmesh.types.BMesh
2072
2027
  :param vec: translation offset
2073
- :type vec: typing.Union[typing.Sequence[float], mathutils.Vector]
2028
+ :type vec: typing.Sequence[float] | mathutils.Vector
2074
2029
  :param space: matrix to define the space (typically object matrix)
2075
- :type space: typing.Union[typing.Sequence[float], mathutils.Matrix]
2030
+ :type space: typing.Sequence[float] | mathutils.Matrix
2076
2031
  :param verts: input vertices
2077
- :type verts: typing.List[bmesh.types.BMVert]
2032
+ :type verts: list[bmesh.types.BMVert]
2078
2033
  :param use_shapekey: Transform shape keys too.
2079
2034
  :type use_shapekey: bool
2080
2035
  """
@@ -2085,9 +2040,9 @@ def triangle_fill(
2085
2040
  bm: bmesh.types.BMesh,
2086
2041
  use_beauty: bool = False,
2087
2042
  use_dissolve: bool = False,
2088
- edges: typing.List[bmesh.types.BMEdge] = [],
2089
- normal: typing.Union[typing.Sequence[float], mathutils.Vector] = None(),
2090
- ) -> typing.Dict[str, typing.Any]:
2043
+ edges: list[bmesh.types.BMEdge] = [],
2044
+ normal: typing.Sequence[float] | mathutils.Vector = None(),
2045
+ ) -> dict[str, typing.Any]:
2091
2046
  """Triangle Fill.Fill edges with triangles
2092
2047
 
2093
2048
  :param bm: The bmesh to operate on.
@@ -2097,33 +2052,33 @@ def triangle_fill(
2097
2052
  :param use_dissolve: dissolve resulting faces
2098
2053
  :type use_dissolve: bool
2099
2054
  :param edges: input edges
2100
- :type edges: typing.List[bmesh.types.BMEdge]
2055
+ :type edges: list[bmesh.types.BMEdge]
2101
2056
  :param normal: optionally pass the fill normal to use
2102
- :type normal: typing.Union[typing.Sequence[float], mathutils.Vector]
2057
+ :type normal: typing.Sequence[float] | mathutils.Vector
2103
2058
  :return: geom: new faces and edges
2104
2059
 
2105
2060
  type list of (`bmesh.types.BMVert`, `bmesh.types.BMEdge`, `bmesh.types.BMFace`)
2106
- :rtype: typing.Dict[str, typing.Any]
2061
+ :rtype: dict[str, typing.Any]
2107
2062
  """
2108
2063
 
2109
2064
  ...
2110
2065
 
2111
2066
  def triangulate(
2112
2067
  bm: bmesh.types.BMesh,
2113
- faces: typing.List[bmesh.types.BMFace] = [],
2114
- quad_method: typing.Union[str, int] = "BEAUTY",
2115
- ngon_method: typing.Union[str, int] = "BEAUTY",
2116
- ) -> typing.Dict[str, typing.Any]:
2068
+ faces: list[bmesh.types.BMFace] = [],
2069
+ quad_method: str | int = "BEAUTY",
2070
+ ngon_method: str | int = "BEAUTY",
2071
+ ) -> dict[str, typing.Any]:
2117
2072
  """Triangulate.
2118
2073
 
2119
2074
  :param bm: The bmesh to operate on.
2120
2075
  :type bm: bmesh.types.BMesh
2121
2076
  :param faces: input faces
2122
- :type faces: typing.List[bmesh.types.BMFace]
2077
+ :type faces: list[bmesh.types.BMFace]
2123
2078
  :param quad_method: method for splitting the quads into triangles
2124
- :type quad_method: typing.Union[str, int]
2079
+ :type quad_method: str | int
2125
2080
  :param ngon_method: method for splitting the polygons into triangles
2126
- :type ngon_method: typing.Union[str, int]
2081
+ :type ngon_method: str | int
2127
2082
  :return: edges:
2128
2083
 
2129
2084
  type list of (`bmesh.types.BMEdge`)
@@ -2139,22 +2094,20 @@ def triangulate(
2139
2094
  face_map_double: duplicate faces
2140
2095
 
2141
2096
  type dict mapping vert/edge/face types to `bmesh.types.BMVert`/`bmesh.types.BMEdge`/`bmesh.types.BMFace`
2142
- :rtype: typing.Dict[str, typing.Any]
2097
+ :rtype: dict[str, typing.Any]
2143
2098
  """
2144
2099
 
2145
2100
  ...
2146
2101
 
2147
2102
  def unsubdivide(
2148
- bm: bmesh.types.BMesh,
2149
- verts: typing.List[bmesh.types.BMVert] = [],
2150
- iterations: int = 0,
2103
+ bm: bmesh.types.BMesh, verts: list[bmesh.types.BMVert] = [], iterations: int = 0
2151
2104
  ):
2152
2105
  """Un-Subdivide.Reduce detail in geometry containing grids.
2153
2106
 
2154
2107
  :param bm: The bmesh to operate on.
2155
2108
  :type bm: bmesh.types.BMesh
2156
2109
  :param verts: input vertices
2157
- :type verts: typing.List[bmesh.types.BMVert]
2110
+ :type verts: list[bmesh.types.BMVert]
2158
2111
  :param iterations: number of times to unsubdivide
2159
2112
  :type iterations: int
2160
2113
  """
@@ -2175,7 +2128,7 @@ def weld_verts(bm: bmesh.types.BMesh, targetmap={}):
2175
2128
 
2176
2129
  def wireframe(
2177
2130
  bm: bmesh.types.BMesh,
2178
- faces: typing.List[bmesh.types.BMFace] = [],
2131
+ faces: list[bmesh.types.BMFace] = [],
2179
2132
  thickness: float = 0,
2180
2133
  offset: float = 0,
2181
2134
  use_replace: bool = False,
@@ -2185,13 +2138,13 @@ def wireframe(
2185
2138
  crease_weight: float = 0,
2186
2139
  use_relative_offset: bool = False,
2187
2140
  material_offset: int = 0,
2188
- ) -> typing.Dict[str, typing.Any]:
2141
+ ) -> dict[str, typing.Any]:
2189
2142
  """Wire Frame.Makes a wire-frame copy of faces.
2190
2143
 
2191
2144
  :param bm: The bmesh to operate on.
2192
2145
  :type bm: bmesh.types.BMesh
2193
2146
  :param faces: input faces
2194
- :type faces: typing.List[bmesh.types.BMFace]
2147
+ :type faces: list[bmesh.types.BMFace]
2195
2148
  :param thickness: thickness
2196
2149
  :type thickness: float
2197
2150
  :param offset: offset the thickness from the center
@@ -2213,7 +2166,7 @@ def wireframe(
2213
2166
  :return: faces: output faces
2214
2167
 
2215
2168
  type list of (`bmesh.types.BMFace`)
2216
- :rtype: typing.Dict[str, typing.Any]
2169
+ :rtype: dict[str, typing.Any]
2217
2170
  """
2218
2171
 
2219
2172
  ...