fake-bpy-module 20250612__py3-none-any.whl → 20260118__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.
Files changed (325) hide show
  1. {bl_console_utils → _bl_console_utils}/autocomplete/complete_calltip/__init__.pyi +0 -13
  2. {bl_console_utils → _bl_console_utils}/autocomplete/complete_import/__init__.pyi +0 -5
  3. {bl_console_utils → _bl_console_utils}/autocomplete/complete_namespace/__init__.pyi +0 -11
  4. {bl_console_utils → _bl_console_utils}/autocomplete/intellisense/__init__.pyi +0 -10
  5. {bl_i18n_utils → _bl_i18n_utils}/__init__.pyi +1 -0
  6. {bl_i18n_utils → _bl_i18n_utils}/bl_extract_messages/__init__.pyi +1 -0
  7. {bl_i18n_utils → _bl_i18n_utils}/settings/__init__.pyi +3 -1
  8. {bl_i18n_utils → _bl_i18n_utils}/utils/__init__.pyi +4 -4
  9. _bl_i18n_utils/utils_spell_check/__init__.pyi +22 -0
  10. {bl_ui_utils → _bl_ui_utils}/__init__.pyi +1 -0
  11. _blendfile_header/__init__.pyi +48 -0
  12. _bpy_internal/__init__.pyi +4 -1
  13. _bpy_internal/assets/__init__.pyi +5 -0
  14. _bpy_internal/assets/remote_library_listing/__init__.pyi +5 -0
  15. _bpy_internal/assets/remote_library_listing/blender_asset_library_openapi/__init__.pyi +13 -0
  16. _bpy_internal/disk_file_hash_service/__init__.pyi +19 -0
  17. _bpy_internal/disk_file_hash_service/backend_sqlite/__init__.pyi +48 -0
  18. _bpy_internal/disk_file_hash_service/hash_service/__init__.pyi +64 -0
  19. _bpy_internal/disk_file_hash_service/types/__init__.pyi +53 -0
  20. _bpy_internal/extensions/wheel_manager/__init__.pyi +1 -1
  21. _bpy_internal/filesystem/__init__.pyi +5 -0
  22. _bpy_internal/filesystem/locking/__init__.pyi +28 -0
  23. _bpy_internal/grease_pencil/stroke/__init__.pyi +2 -2
  24. _bpy_internal/platform/__init__.pyi +5 -0
  25. _bpy_types/__init__.pyi +1592 -0
  26. {keyingsets_utils → _keyingsets_utils}/__init__.pyi +2 -0
  27. {rna_info → _rna_info}/__init__.pyi +4 -2
  28. addon_utils/__init__.pyi +0 -13
  29. aud/__init__.pyi +122 -145
  30. bl_app_templates_system/Storyboarding/__init__.pyi +11 -0
  31. bl_app_templates_system/__init__.pyi +5 -0
  32. bl_app_templates_system/py.typed +0 -0
  33. bl_math/__init__.pyi +3 -13
  34. bl_operators/__init__.pyi +1 -0
  35. bl_operators/add_mesh_torus/__init__.pyi +2 -3
  36. bl_operators/anim/__init__.pyi +62 -38
  37. bl_operators/assets/__init__.pyi +4 -9
  38. bl_operators/bone_selection_sets/__init__.pyi +15 -42
  39. bl_operators/clip/__init__.pyi +12 -31
  40. bl_operators/connect_to_output/__init__.pyi +2 -3
  41. bl_operators/console/__init__.pyi +6 -15
  42. bl_operators/constraint/__init__.pyi +6 -13
  43. bl_operators/copy_global_transform/__init__.pyi +261 -0
  44. bl_operators/file/__init__.pyi +6 -11
  45. bl_operators/freestyle/__init__.pyi +5 -12
  46. bl_operators/geometry_nodes/__init__.pyi +5 -12
  47. bl_operators/grease_pencil/__init__.pyi +2 -3
  48. bl_operators/image/__init__.pyi +6 -15
  49. bl_operators/image_as_planes/__init__.pyi +3 -10
  50. bl_operators/mesh/__init__.pyi +3 -49
  51. bl_operators/node/__init__.pyi +294 -73
  52. bl_operators/object/__init__.pyi +17 -53
  53. bl_operators/object_align/__init__.pyi +2 -3
  54. bl_operators/object_quick_effects/__init__.pyi +5 -12
  55. bl_operators/object_randomize_transform/__init__.pyi +2 -3
  56. bl_operators/presets/__init__.pyi +27 -76
  57. bl_operators/rigidbody/__init__.pyi +4 -9
  58. bl_operators/screen_play_rendered_anim/__init__.pyi +2 -3
  59. bl_operators/sequencer/__init__.pyi +12 -27
  60. bl_operators/spreadsheet/__init__.pyi +2 -3
  61. bl_operators/userpref/__init__.pyi +26 -75
  62. bl_operators/uvcalc_follow_active/__init__.pyi +3 -4
  63. bl_operators/uvcalc_lightmap/__init__.pyi +3 -4
  64. bl_operators/uvcalc_transform/__init__.pyi +26 -16
  65. bl_operators/vertexpaint_dirt/__init__.pyi +2 -3
  66. bl_operators/view3d/__init__.pyi +9 -24
  67. bl_operators/wm/__init__.pyi +48 -139
  68. bl_operators/world/__init__.pyi +3 -4
  69. bl_ui/__init__.pyi +7 -7
  70. bl_ui/anim/__init__.pyi +2 -3
  71. bl_ui/asset_shelf/__init__.pyi +2 -3
  72. bl_ui/generic_ui_list/__init__.pyi +4 -19
  73. bl_ui/node_add_menu/__init__.pyi +263 -7
  74. bl_ui/node_add_menu_compositor/__init__.pyi +96 -79
  75. bl_ui/node_add_menu_geometry/__init__.pyi +309 -270
  76. bl_ui/node_add_menu_shader/__init__.pyi +49 -49
  77. bl_ui/node_add_menu_texture/__init__.pyi +17 -62
  78. bl_ui/properties_collection/__init__.pyi +9 -22
  79. bl_ui/properties_constraint/__init__.pyi +129 -282
  80. bl_ui/properties_data_armature/__init__.pyi +22 -57
  81. bl_ui/properties_data_bone/__init__.pyi +12 -31
  82. bl_ui/properties_data_camera/__init__.pyi +18 -47
  83. bl_ui/properties_data_curve/__init__.pyi +18 -47
  84. bl_ui/properties_data_curves/__init__.pyi +11 -26
  85. bl_ui/properties_data_empty/__init__.pyi +3 -6
  86. bl_ui/properties_data_grease_pencil/__init__.pyi +23 -62
  87. bl_ui/properties_data_lattice/__init__.pyi +7 -14
  88. bl_ui/properties_data_light/__init__.pyi +13 -32
  89. bl_ui/properties_data_lightprobe/__init__.pyi +16 -43
  90. bl_ui/properties_data_mesh/__init__.pyi +47 -62
  91. bl_ui/properties_data_metaball/__init__.pyi +9 -20
  92. bl_ui/properties_data_modifier/__init__.pyi +22 -28
  93. bl_ui/properties_data_pointcloud/__init__.pyi +8 -19
  94. bl_ui/properties_data_shaderfx/__init__.pyi +2 -3
  95. bl_ui/properties_data_speaker/__init__.pyi +9 -20
  96. bl_ui/properties_data_volume/__init__.pyi +12 -29
  97. bl_ui/properties_freestyle/__init__.pyi +27 -76
  98. bl_ui/properties_grease_pencil_common/__init__.pyi +10 -168
  99. bl_ui/properties_mask_common/__init__.pyi +8 -21
  100. bl_ui/properties_material/__init__.pyi +26 -86
  101. bl_ui/properties_material_gpencil/__init__.pyi +36 -57
  102. bl_ui/properties_object/__init__.pyi +59 -65
  103. bl_ui/properties_output/__init__.pyi +21 -60
  104. bl_ui/properties_paint_common/__init__.pyi +30 -22
  105. bl_ui/properties_particle/__init__.pyi +58 -161
  106. bl_ui/properties_physics_cloth/__init__.pyi +15 -42
  107. bl_ui/properties_physics_common/__init__.pyi +2 -3
  108. bl_ui/properties_physics_dynamicpaint/__init__.pyi +23 -66
  109. bl_ui/properties_physics_field/__init__.pyi +11 -30
  110. bl_ui/properties_physics_fluid/__init__.pyi +29 -84
  111. bl_ui/properties_physics_geometry_nodes/__init__.pyi +2 -3
  112. bl_ui/properties_physics_rigidbody/__init__.pyi +9 -24
  113. bl_ui/properties_physics_rigidbody_constraint/__init__.pyi +14 -39
  114. bl_ui/properties_physics_softbody/__init__.pyi +16 -45
  115. bl_ui/properties_render/__init__.pyi +139 -197
  116. bl_ui/properties_scene/__init__.pyi +46 -50
  117. bl_ui/properties_strip/__init__.pyi +744 -0
  118. bl_ui/properties_strip_modifier/__init__.pyi +45 -0
  119. bl_ui/properties_texture/__init__.pyi +30 -83
  120. bl_ui/properties_view_layer/__init__.pyi +84 -39
  121. bl_ui/properties_workspace/__init__.pyi +6 -13
  122. bl_ui/properties_world/__init__.pyi +14 -35
  123. bl_ui/space_clip/__init__.pyi +150 -231
  124. bl_ui/space_console/__init__.pyi +7 -18
  125. bl_ui/space_dopesheet/__init__.pyi +143 -100
  126. bl_ui/space_filebrowser/__init__.pyi +33 -90
  127. bl_ui/space_graph/__init__.pyi +48 -85
  128. bl_ui/space_image/__init__.pyi +111 -229
  129. bl_ui/space_info/__init__.pyi +7 -18
  130. bl_ui/space_nla/__init__.pyi +44 -73
  131. bl_ui/space_node/__init__.pyi +161 -123
  132. bl_ui/space_outliner/__init__.pyi +16 -45
  133. bl_ui/space_properties/__init__.pyi +34 -10
  134. bl_ui/space_sequencer/__init__.pyi +164 -901
  135. bl_ui/space_spreadsheet/__init__.pyi +4 -9
  136. bl_ui/space_statusbar/__init__.pyi +2 -3
  137. bl_ui/space_text/__init__.pyi +17 -48
  138. bl_ui/space_time/__init__.pyi +25 -71
  139. bl_ui/space_toolsystem_common/__init__.pyi +2 -2
  140. bl_ui/space_toolsystem_toolbar/__init__.pyi +30 -7
  141. bl_ui/space_topbar/__init__.pyi +35 -79
  142. bl_ui/space_userpref/__init__.pyi +185 -321
  143. bl_ui/space_view3d/__init__.pyi +337 -817
  144. bl_ui/space_view3d_sidebar/__init__.pyi +127 -0
  145. bl_ui/space_view3d_toolbar/__init__.pyi +110 -880
  146. bl_ui/utils/__init__.pyi +0 -17
  147. blend_render_info/__init__.pyi +1 -0
  148. blf/__init__.pyi +8 -54
  149. bmesh/__init__.pyi +2 -9
  150. bmesh/geometry/__init__.pyi +1 -4
  151. bmesh/ops/__init__.pyi +125 -508
  152. bmesh/types/__init__.pyi +318 -664
  153. bmesh/utils/__init__.pyi +17 -43
  154. bpy/__init__.pyi +1 -1
  155. bpy/app/__init__.pyi +93 -88
  156. bpy/app/handlers/__init__.pyi +19 -19
  157. bpy/app/icons/__init__.pyi +0 -6
  158. bpy/app/timers/__init__.pyi +2 -7
  159. bpy/app/translations/__init__.pyi +8 -23
  160. bpy/msgbus/__init__.pyi +4 -6
  161. bpy/ops/action/__init__.pyi +68 -199
  162. bpy/ops/anim/__init__.pyi +142 -299
  163. bpy/ops/armature/__init__.pyi +78 -209
  164. bpy/ops/asset/__init__.pyi +46 -108
  165. bpy/ops/boid/__init__.pyi +28 -45
  166. bpy/ops/brush/__init__.pyi +13 -108
  167. bpy/ops/buttons/__init__.pyi +16 -75
  168. bpy/ops/cachefile/__init__.pyi +8 -65
  169. bpy/ops/camera/__init__.pyi +0 -11
  170. bpy/ops/clip/__init__.pyi +173 -471
  171. bpy/ops/cloth/__init__.pyi +0 -5
  172. bpy/ops/collection/__init__.pyi +23 -36
  173. bpy/ops/console/__init__.pyi +40 -98
  174. bpy/ops/constraint/__init__.pyi +14 -85
  175. bpy/ops/curve/__init__.pyi +94 -277
  176. bpy/ops/curves/__init__.pyi +119 -166
  177. bpy/ops/cycles/__init__.pyi +4 -15
  178. bpy/ops/dpaint/__init__.pyi +14 -24
  179. bpy/ops/ed/__init__.pyi +44 -92
  180. bpy/ops/export_anim/__init__.pyi +2 -10
  181. bpy/ops/export_scene/__init__.pyi +16 -170
  182. bpy/ops/extensions/__init__.pyi +60 -165
  183. bpy/ops/file/__init__.pyi +110 -246
  184. bpy/ops/fluid/__init__.pyi +52 -83
  185. bpy/ops/font/__init__.pyi +40 -144
  186. bpy/ops/geometry/__init__.pyi +12 -127
  187. bpy/ops/gizmogroup/__init__.pyi +4 -13
  188. bpy/ops/gpencil/__init__.pyi +22 -54
  189. bpy/ops/graph/__init__.pyi +92 -343
  190. bpy/ops/grease_pencil/__init__.pyi +218 -550
  191. bpy/ops/image/__init__.pyi +85 -435
  192. bpy/ops/import_anim/__init__.pyi +3 -17
  193. bpy/ops/import_curve/__init__.pyi +2 -5
  194. bpy/ops/import_scene/__init__.pyi +15 -49
  195. bpy/ops/info/__init__.pyi +16 -39
  196. bpy/ops/lattice/__init__.pyi +12 -36
  197. bpy/ops/marker/__init__.pyi +12 -51
  198. bpy/ops/mask/__init__.pyi +68 -193
  199. bpy/ops/material/__init__.pyi +18 -18
  200. bpy/ops/mball/__init__.pyi +4 -31
  201. bpy/ops/mesh/__init__.pyi +140 -967
  202. bpy/ops/nla/__init__.pyi +87 -206
  203. bpy/ops/node/__init__.pyi +714 -744
  204. bpy/ops/object/__init__.pyi +461 -1341
  205. bpy/ops/outliner/__init__.pyi +192 -376
  206. bpy/ops/paint/__init__.pyi +94 -319
  207. bpy/ops/paintcurve/__init__.pyi +20 -40
  208. bpy/ops/palette/__init__.pyi +14 -30
  209. bpy/ops/particle/__init__.pyi +86 -184
  210. bpy/ops/pointcloud/__init__.pyi +12 -38
  211. bpy/ops/pose/__init__.pyi +108 -261
  212. bpy/ops/poselib/__init__.pyi +32 -67
  213. bpy/ops/preferences/__init__.pyi +37 -187
  214. bpy/ops/ptcache/__init__.pyi +22 -36
  215. bpy/ops/render/__init__.pyi +20 -72
  216. bpy/ops/rigidbody/__init__.pyi +25 -63
  217. bpy/ops/scene/__init__.pyi +122 -181
  218. bpy/ops/screen/__init__.pyi +93 -221
  219. bpy/ops/script/__init__.pyi +4 -13
  220. bpy/ops/sculpt/__init__.pyi +69 -324
  221. bpy/ops/sculpt_curves/__init__.pyi +10 -23
  222. bpy/ops/sequencer/__init__.pyi +410 -730
  223. bpy/ops/sound/__init__.pyi +16 -114
  224. bpy/ops/spreadsheet/__init__.pyi +20 -37
  225. bpy/ops/surface/__init__.pyi +0 -48
  226. bpy/ops/text/__init__.pyi +112 -250
  227. bpy/ops/text_editor/__init__.pyi +0 -5
  228. bpy/ops/texture/__init__.pyi +14 -21
  229. bpy/ops/transform/__init__.pyi +18 -386
  230. bpy/ops/ui/__init__.pyi +117 -188
  231. bpy/ops/uilist/__init__.pyi +0 -13
  232. bpy/ops/uv/__init__.pyi +238 -305
  233. bpy/ops/view2d/__init__.pyi +16 -76
  234. bpy/ops/view3d/__init__.pyi +153 -377
  235. bpy/ops/wm/__init__.pyi +277 -1397
  236. bpy/ops/workspace/__init__.pyi +32 -39
  237. bpy/ops/world/__init__.pyi +10 -12
  238. bpy/path/__init__.pyi +1 -35
  239. bpy/props/__init__.pyi +347 -218
  240. bpy/stub_internal/rna_enums/__init__.pyi +142 -108
  241. bpy/types/__init__.pyi +77367 -101305
  242. bpy/utils/__init__.pyi +11 -82
  243. bpy/utils/previews/__init__.pyi +2 -11
  244. bpy/utils/units/__init__.pyi +5 -15
  245. bpy_extras/anim_utils/__init__.pyi +24 -16
  246. bpy_extras/bmesh_utils/__init__.pyi +0 -1
  247. bpy_extras/id_map_utils/__init__.pyi +14 -6
  248. bpy_extras/image_utils/__init__.pyi +2 -11
  249. bpy_extras/io_utils/__init__.pyi +8 -27
  250. bpy_extras/keyconfig_utils/__init__.pyi +1 -1
  251. bpy_extras/mesh_utils/__init__.pyi +0 -12
  252. bpy_extras/node_shader_utils/__init__.pyi +1 -9
  253. bpy_extras/object_utils/__init__.pyi +1 -15
  254. bpy_extras/view3d_utils/__init__.pyi +0 -18
  255. bpy_extras/wm_utils/progress_report/__init__.pyi +1 -1
  256. {fake_bpy_module-20250612.dist-info → fake_bpy_module-20260118.dist-info}/METADATA +4 -1
  257. fake_bpy_module-20260118.dist-info/RECORD +385 -0
  258. {fake_bpy_module-20250612.dist-info → fake_bpy_module-20260118.dist-info}/top_level.txt +17 -16
  259. freestyle/chainingiterators/__init__.pyi +5 -27
  260. freestyle/functions/__init__.pyi +0 -139
  261. freestyle/predicates/__init__.pyi +2 -53
  262. freestyle/shaders/__init__.pyi +15 -81
  263. freestyle/types/__init__.pyi +159 -799
  264. freestyle/utils/ContextFunctions/__init__.pyi +0 -23
  265. freestyle/utils/__init__.pyi +5 -11
  266. gpu/capabilities/__init__.pyi +0 -21
  267. gpu/matrix/__init__.pyi +1 -10
  268. gpu/platform/__init__.pyi +2 -7
  269. gpu/shader/__init__.pyi +26 -9
  270. gpu/state/__init__.pyi +60 -39
  271. gpu/texture/__init__.pyi +3 -5
  272. gpu/types/__init__.pyi +116 -184
  273. gpu_extras/batch/__init__.pyi +1 -5
  274. gpu_extras/presets/__init__.pyi +6 -8
  275. idprop/types/__init__.pyi +6 -6
  276. imbuf/__init__.pyi +3 -10
  277. imbuf/types/__init__.pyi +7 -21
  278. keyingsets_builtins/__init__.pyi +24 -67
  279. mathutils/__init__.pyi +241 -2207
  280. mathutils/bvhtree/__init__.pyi +18 -26
  281. mathutils/geometry/__init__.pyi +82 -132
  282. mathutils/interpolate/__init__.pyi +6 -5
  283. mathutils/kdtree/__init__.pyi +1 -11
  284. mathutils/noise/__init__.pyi +61 -106
  285. rna_prop_ui/__init__.pyi +1 -1
  286. bgl/__init__.pyi +0 -4256
  287. bpy_types/__init__.pyi +0 -30
  288. fake_bpy_module-20250612.dist-info/RECORD +0 -367
  289. {animsys_refactor → _animsys_refactor}/__init__.pyi +0 -0
  290. {animsys_refactor → _animsys_refactor}/py.typed +0 -0
  291. {bl_console_utils → _bl_console_utils}/__init__.pyi +0 -0
  292. {bl_console_utils → _bl_console_utils}/autocomplete/__init__.pyi +0 -0
  293. {bgl → _bl_console_utils}/py.typed +0 -0
  294. {bl_i18n_utils → _bl_i18n_utils}/merge_po/__init__.pyi +0 -0
  295. {bl_console_utils → _bl_i18n_utils}/py.typed +0 -0
  296. {bl_i18n_utils → _bl_i18n_utils}/utils_cli/__init__.pyi +0 -0
  297. {bl_i18n_utils → _bl_i18n_utils}/utils_languages_menu/__init__.pyi +0 -0
  298. {bl_i18n_utils → _bl_i18n_utils}/utils_rtl/__init__.pyi +0 -0
  299. {bl_previews_utils → _bl_previews_utils}/__init__.pyi +0 -0
  300. {bl_previews_utils → _bl_previews_utils}/bl_previews_render/__init__.pyi +0 -0
  301. {bl_i18n_utils → _bl_previews_utils}/py.typed +0 -0
  302. {bl_rna_utils → _bl_rna_utils}/__init__.pyi +0 -0
  303. {bl_rna_utils → _bl_rna_utils}/data_path/__init__.pyi +0 -0
  304. {bl_previews_utils → _bl_rna_utils}/py.typed +0 -0
  305. {bl_text_utils → _bl_text_utils}/__init__.pyi +0 -0
  306. {bl_text_utils → _bl_text_utils}/external_editor/__init__.pyi +0 -0
  307. {bl_rna_utils → _bl_text_utils}/py.typed +0 -0
  308. {bl_ui_utils → _bl_ui_utils}/layout/__init__.pyi +0 -0
  309. {bl_text_utils → _bl_ui_utils}/py.typed +0 -0
  310. {bl_ui_utils → _blendfile_header}/py.typed +0 -0
  311. /_bpy_internal/{freedesktop → platform/freedesktop}/__init__.pyi +0 -0
  312. {bpy_restrict_state → _bpy_restrict_state}/__init__.pyi +0 -0
  313. {bpy_restrict_state → _bpy_restrict_state}/py.typed +0 -0
  314. {bpy_types → _bpy_types}/py.typed +0 -0
  315. {console_python → _console_python}/__init__.pyi +0 -0
  316. {console_python → _console_python}/py.typed +0 -0
  317. {console_shell → _console_shell}/__init__.pyi +0 -0
  318. {console_shell → _console_shell}/py.typed +0 -0
  319. {graphviz_export → _graphviz_export}/__init__.pyi +0 -0
  320. {graphviz_export → _graphviz_export}/py.typed +0 -0
  321. {keyingsets_utils → _keyingsets_utils}/py.typed +0 -0
  322. {rna_info → _rna_info}/py.typed +0 -0
  323. {rna_xml → _rna_xml}/__init__.pyi +0 -0
  324. {rna_xml → _rna_xml}/py.typed +0 -0
  325. {fake_bpy_module-20250612.dist-info → fake_bpy_module-20260118.dist-info}/WHEEL +0 -0
bmesh/types/__init__.pyi CHANGED
@@ -1,4 +1,16 @@
1
1
  """
2
+ SUBSTITUTION REPLACEMENT 'UV_STICKY_SELECT_MODE_REF':
3
+ (bpy.types.ToolSettings.uv_sticky_select_mode which may be passed in directly).
4
+
5
+ SUBSTITUTION REPLACEMENT 'UV_STICKY_SELECT_MODE_TYPE':
6
+ Literal['SHARED_LOCATION', 'DISABLED', 'SHARED_VERTEX']
7
+
8
+ SUBSTITUTION REPLACEMENT 'UV_SELECT_FLUSH_MODE_NEEDED':
9
+ This function selection-mode independent, typically bmesh.types.BMesh.uv_select_flush_mode should be called afterwards.
10
+
11
+ SUBSTITUTION REPLACEMENT 'UV_SELECT_SYNC_TO_MESH_NEEDED':
12
+ This function doesn't flush the selection to the mesh, typically bmesh.types.BMesh.uv_select_sync_to_mesh should be called afterwards.
13
+
2
14
 
3
15
  --------------------
4
16
 
@@ -32,157 +44,102 @@ class BMDeformVert:
32
44
 
33
45
  def get(self, key: int, default: typing.Any | None = None) -> None:
34
46
  """Returns the deform weight matching the key or default
35
- when not found (matches Python's dictionary function of the same name).
47
+ when not found (matches Pythons dictionary function of the same name).
36
48
 
37
49
  :param key: The key associated with deform weight.
38
- :type key: int
39
50
  :param default: Optional argument for the value to return if
40
51
  key is not found.
41
- :type default: typing.Any | None
42
52
  """
43
53
 
44
54
  def items(self) -> list[tuple[int, float]]:
45
55
  """Return (group, weight) pairs for this vertex
46
- (matching Python's dict.items() functionality).
56
+ (matching Pythons dict.items() functionality).
47
57
 
48
58
  :return: (key, value) pairs for each deform weight of this vertex.
49
- :rtype: list[tuple[int, float]]
50
59
  """
51
60
 
52
61
  def keys(self) -> list[int]:
53
62
  """Return the group indices used by this vertex
54
- (matching Python's dict.keys() functionality).
63
+ (matching Pythons dict.keys() functionality).
55
64
 
56
65
  :return: the deform group this vertex uses
57
- :rtype: list[int]
58
66
  """
59
67
 
60
68
  def values(self) -> list[float]:
61
69
  """Return the weights of the deform vertex
62
- (matching Python's dict.values() functionality).
70
+ (matching Pythons dict.values() functionality).
63
71
 
64
72
  :return: The weights that influence this vertex
65
- :rtype: list[float]
66
73
  """
67
74
 
68
75
  class BMEdge:
69
76
  """The BMesh edge connecting 2 verts"""
70
77
 
71
78
  hide: bool
72
- """ Hidden state of this element.
73
-
74
- :type: bool
75
- """
79
+ """ Hidden state of this element."""
76
80
 
77
81
  index: int
78
- """ Index of this element.
79
-
80
- :type: int
81
- """
82
+ """ Index of this element."""
82
83
 
83
84
  is_boundary: bool
84
- """ True when this edge is at the boundary of a face (read-only).
85
-
86
- :type: bool
87
- """
85
+ """ True when this edge is at the boundary of a face (read-only)."""
88
86
 
89
87
  is_contiguous: bool
90
- """ True when this edge is manifold, between two faces with the same winding (read-only).
91
-
92
- :type: bool
93
- """
88
+ """ True when this edge is manifold, between two faces with the same winding (read-only)."""
94
89
 
95
90
  is_convex: bool
96
- """ True when this edge joins two convex faces, depends on a valid face normal (read-only).
97
-
98
- :type: bool
99
- """
91
+ """ True when this edge joins two convex faces, depends on a valid face normal (read-only)."""
100
92
 
101
93
  is_manifold: bool
102
- """ True when this edge is manifold (read-only).
103
-
104
- :type: bool
105
- """
94
+ """ True when this edge is manifold (read-only)."""
106
95
 
107
96
  is_valid: bool
108
- """ True when this element is valid (hasn't been removed).
109
-
110
- :type: bool
111
- """
97
+ """ True when this element is valid (hasn't been removed)."""
112
98
 
113
99
  is_wire: bool
114
- """ True when this edge is not connected to any faces (read-only).
115
-
116
- :type: bool
117
- """
118
-
119
- link_faces: BMElemSeq[BMFace]
120
- """ Faces connected to this edge, (read-only).
100
+ """ True when this edge is not connected to any faces (read-only)."""
121
101
 
122
- :type: BMElemSeq[BMFace]
123
- """
124
-
125
- link_loops: BMElemSeq[BMLoop]
126
- """ Loops connected to this edge, (read-only).
102
+ link_faces: typing.Any
103
+ """ Faces connected to this edge, (read-only)."""
127
104
 
128
- :type: BMElemSeq[BMLoop]
129
- """
105
+ link_loops: typing.Any
106
+ """ Loops connected to this edge, (read-only)."""
130
107
 
131
108
  seam: bool
132
- """ Seam for UV unwrapping.
133
-
134
- :type: bool
135
- """
109
+ """ Seam for UV unwrapping."""
136
110
 
137
111
  select: bool
138
- """ Selected state of this element.
139
-
140
- :type: bool
141
- """
112
+ """ Selected state of this element."""
142
113
 
143
114
  smooth: bool
144
- """ Smooth state of this element.
145
-
146
- :type: bool
147
- """
115
+ """ Smooth state of this element."""
148
116
 
149
117
  tag: bool
150
- """ Generic attribute scripts can use for own logic
151
-
152
- :type: bool
153
- """
154
-
155
- verts: BMElemSeq[BMVert]
156
- """ Verts this edge uses (always 2), (read-only).
118
+ """ Generic attribute scripts can use for own logic"""
157
119
 
158
- :type: BMElemSeq[BMVert]
159
- """
120
+ verts: typing.Any
121
+ """ Verts this edge uses (always 2), (read-only)."""
160
122
 
161
123
  def calc_face_angle(self, fallback: typing.Any | None = None) -> float:
162
124
  """
163
125
 
164
- :param fallback: return this when the edge doesn't have 2 faces
126
+ :param fallback: return this when the edge doesnt have 2 faces
165
127
  (instead of raising a `ValueError`).
166
- :type fallback: typing.Any | None
167
128
  :return: The angle between 2 connected faces in radians.
168
- :rtype: float
169
129
  """
170
130
 
171
131
  def calc_face_angle_signed(self, fallback: typing.Any | None = None) -> float:
172
132
  """
173
133
 
174
- :param fallback: return this when the edge doesn't have 2 faces
134
+ :param fallback: return this when the edge doesnt have 2 faces
175
135
  (instead of raising a `ValueError`).
176
- :type fallback: typing.Any | None
177
136
  :return: The angle between 2 connected faces in radians (negative for concave join).
178
- :rtype: float
179
137
  """
180
138
 
181
139
  def calc_length(self) -> float:
182
140
  """
183
141
 
184
142
  :return: The length between both verts.
185
- :rtype: float
186
143
  """
187
144
 
188
145
  def calc_tangent(self, loop: BMLoop) -> mathutils.Vector:
@@ -190,16 +147,13 @@ class BMEdge:
190
147
  This uses the face normal for calculation.
191
148
 
192
149
  :param loop: The loop used for tangent calculation.
193
- :type loop: BMLoop
194
150
  :return: a normalized vector.
195
- :rtype: mathutils.Vector
196
151
  """
197
152
 
198
153
  def copy_from(self, other: typing_extensions.Self) -> None:
199
154
  """Copy values from another element of matching type.
200
155
 
201
156
  :param other:
202
- :type other: typing_extensions.Self
203
157
  """
204
158
 
205
159
  def hide_set(self, hide: bool) -> None:
@@ -207,7 +161,6 @@ class BMEdge:
207
161
  This is different from the hide attribute because it updates the selection and hide state of associated geometry.
208
162
 
209
163
  :param hide: Hidden or visible.
210
- :type hide: bool
211
164
  """
212
165
 
213
166
  def normal_update(self) -> None:
@@ -217,9 +170,7 @@ class BMEdge:
217
170
  """Return the other vertex on this edge or None if the vertex is not used by this edge.
218
171
 
219
172
  :param vert: a vert in this edge.
220
- :type vert: BMVert
221
173
  :return: The edges other vert.
222
- :rtype: BMVert | None
223
174
  """
224
175
 
225
176
  def select_set(self, select: bool) -> None:
@@ -227,7 +178,6 @@ class BMEdge:
227
178
  This is different from the select attribute because it updates the selection state of associated geometry.
228
179
 
229
180
  :param select: Select or de-select.
230
- :type select: bool
231
181
  """
232
182
 
233
183
  def __getitem__[_GenericType1](
@@ -236,9 +186,7 @@ class BMEdge:
236
186
  """
237
187
 
238
188
  :param key:
239
- :type key: BMLayerItem[_GenericType1]
240
189
  :return:
241
- :rtype: _GenericType1
242
190
  """
243
191
 
244
192
  def __setitem__[_GenericType1](
@@ -247,36 +195,32 @@ class BMEdge:
247
195
  """
248
196
 
249
197
  :param key:
250
- :type key: BMLayerItem[_GenericType1]
251
198
  :param value:
252
- :type value: _GenericType1
253
199
  """
254
200
 
255
201
  def __delitem__[_GenericType1](self, key: BMLayerItem[_GenericType1]) -> None:
256
202
  """
257
203
 
258
204
  :param key:
259
- :type key: BMLayerItem[_GenericType1]
260
205
  """
261
206
 
262
207
  class BMEdgeSeq:
263
208
  layers: BMLayerAccessEdge
264
- """ custom-data layers (read-only).
265
-
266
- :type: BMLayerAccessEdge
267
- """
209
+ """ custom-data layers (read-only)."""
268
210
 
269
211
  def ensure_lookup_table(self) -> None:
270
212
  """Ensure internal data needed for int subscription is initialized with verts/edges/faces, eg bm.verts[index].This needs to be called again after adding/removing data in this sequence."""
271
213
 
272
- def get(self, verts: collections.abc.Sequence[BMVert], fallback=None) -> BMEdge:
214
+ def get(
215
+ self,
216
+ verts: collections.abc.Sequence[BMVert],
217
+ fallback: typing.Any | None = None,
218
+ ) -> BMEdge:
273
219
  """Return an edge which uses the verts passed.
274
220
 
275
221
  :param verts: Sequence of verts.
276
- :type verts: collections.abc.Sequence[BMVert]
277
222
  :param fallback: Return this value if nothing is found.
278
223
  :return: The edge found or None
279
- :rtype: BMEdge
280
224
  """
281
225
 
282
226
  def index_update(self) -> None:
@@ -288,34 +232,29 @@ class BMEdgeSeq:
288
232
  """Create a new edge from a given pair of verts.
289
233
 
290
234
  :param verts: Vertex pair.
291
- :type verts: collections.abc.Sequence[BMVert]
292
235
  :param example: Existing edge to initialize settings (optional argument).
293
- :type example: BMEdge | None
294
236
  :return: The newly created edge.
295
- :rtype: BMEdge
296
237
  """
297
238
 
298
239
  def remove(self, edge: BMEdge) -> None:
299
240
  """Remove an edge.
300
241
 
301
- :param edge:
302
- :type edge: BMEdge
242
+ :param edge: The edge to remove.
303
243
  """
304
244
 
305
245
  def sort(
306
246
  self,
247
+ *,
307
248
  key: None
308
249
  | collections.abc.Callable[[BMVert | BMEdge | BMFace], int]
309
250
  | None = None,
310
251
  reverse: bool = False,
311
252
  ) -> None:
312
253
  """Sort the elements of this sequence, using an optional custom sort key.
313
- Indices of elements are not changed, `BMElemSeq.index_update` can be used for that.
254
+ Indices of elements are not changed, `bmesh.types.BMElemSeq.index_update` can be used for that.
314
255
 
315
256
  :param key: The key that sets the ordering of the elements.
316
- :type key: None | collections.abc.Callable[[BMVert | BMEdge | BMFace], int] | None
317
257
  :param reverse: Reverse the order of the elements
318
- :type reverse: bool
319
258
  """
320
259
 
321
260
  @typing.overload
@@ -323,43 +262,34 @@ class BMEdgeSeq:
323
262
  """
324
263
 
325
264
  :param key:
326
- :type key: int
327
265
  :return:
328
- :rtype: BMEdge
329
266
  """
330
267
 
331
268
  @typing.overload
332
- def __getitem__(self, key: slice) -> list[BMEdge, ...]:
269
+ def __getitem__(self, key: slice) -> list[BMEdge]:
333
270
  """
334
271
 
335
272
  :param key:
336
- :type key: slice
337
273
  :return:
338
- :rtype: list[BMEdge, ...]
339
274
  """
340
275
 
341
276
  def __iter__(self) -> BMIter[BMEdge]:
342
277
  """
343
278
 
344
279
  :return:
345
- :rtype: BMIter[BMEdge]
346
280
  """
347
281
 
348
282
  def __len__(self) -> int:
349
283
  """
350
284
 
351
285
  :return:
352
- :rtype: int
353
286
  """
354
287
 
355
288
  class BMEditSelIter: ...
356
289
 
357
290
  class BMEditSelSeq:
358
291
  active: BMEdge | BMFace | BMVert
359
- """ The last selected element or None (read-only).
360
-
361
- :type: BMEdge | BMFace | BMVert
362
- """
292
+ """ The last selected element or None (read-only)."""
363
293
 
364
294
  def add(self, element) -> None:
365
295
  """Add an element to the selection history (no action taken if its already added).
@@ -371,7 +301,7 @@ class BMEditSelSeq:
371
301
  """Empties the selection history."""
372
302
 
373
303
  def discard(self, element) -> None:
374
- """Discard an element from the selection history.Like remove but doesn't raise an error when the elements not in the selection list.
304
+ """Discard an element from the selection history.Like remove but doesnt raise an error when the elements not in the selection list.
375
305
 
376
306
  :param element:
377
307
  """
@@ -387,7 +317,7 @@ class BMEditSelSeq:
387
317
 
388
318
  class BMElemSeq[_GenericType1]:
389
319
  """General sequence type used for accessing any sequence of
390
- `BMVert`, `BMEdge`, `BMFace`, `BMLoop`.When accessed via `BMesh.verts`, `BMesh.edges`, `BMesh.faces`
320
+ `bmesh.types.BMVert`, `bmesh.types.BMEdge`, `bmesh.types.BMFace`, `bmesh.types.BMLoop`.When accessed via `bmesh.types.BMesh.verts`, `bmesh.types.BMesh.edges`, `bmesh.types.BMesh.faces`
391
321
  there are also functions to create/remove items.
392
322
  """
393
323
 
@@ -399,183 +329,134 @@ class BMElemSeq[_GenericType1]:
399
329
  """
400
330
 
401
331
  :param key:
402
- :type key: int
403
332
  :return:
404
- :rtype: _GenericType1
405
333
  """
406
334
 
407
335
  @typing.overload
408
- def __getitem__(self, key: slice) -> list[_GenericType1, ...]:
336
+ def __getitem__(self, key: slice) -> list[_GenericType1]:
409
337
  """
410
338
 
411
339
  :param key:
412
- :type key: slice
413
340
  :return:
414
- :rtype: list[_GenericType1, ...]
415
341
  """
416
342
 
417
343
  def __iter__(self) -> BMIter[_GenericType1]:
418
344
  """
419
345
 
420
346
  :return:
421
- :rtype: BMIter[_GenericType1]
422
347
  """
423
348
 
424
349
  def __len__(self) -> int:
425
350
  """
426
351
 
427
352
  :return:
428
- :rtype: int
429
353
  """
430
354
 
431
355
  class BMFace:
432
356
  """The BMesh face with 3 or more sides"""
433
357
 
434
- edges: BMElemSeq[BMEdge]
435
- """ Edges of this face, (read-only).
436
-
437
- :type: BMElemSeq[BMEdge]
438
- """
358
+ edges: typing.Any
359
+ """ Edges of this face, (read-only)."""
439
360
 
440
361
  hide: bool
441
- """ Hidden state of this element.
442
-
443
- :type: bool
444
- """
362
+ """ Hidden state of this element."""
445
363
 
446
364
  index: int
447
- """ Index of this element.
448
-
449
- :type: int
450
- """
365
+ """ Index of this element."""
451
366
 
452
367
  is_valid: bool
453
- """ True when this element is valid (hasn't been removed).
368
+ """ True when this element is valid (hasn't been removed)."""
454
369
 
455
- :type: bool
456
- """
457
-
458
- loops: BMElemSeq[BMLoop]
459
- """ Loops of this face, (read-only).
460
-
461
- :type: BMElemSeq[BMLoop]
462
- """
370
+ loops: typing.Any
371
+ """ Loops of this face, (read-only)."""
463
372
 
464
373
  material_index: int
465
- """ The face's material index.
466
-
467
- :type: int
468
- """
374
+ """ The face's material index."""
469
375
 
470
376
  normal: mathutils.Vector
471
- """ The normal for this face as a 3D, wrapped vector.
472
-
473
- :type: mathutils.Vector
474
- """
377
+ """ The normal for this face as a 3D, wrapped vector."""
475
378
 
476
379
  select: bool
477
- """ Selected state of this element.
478
-
479
- :type: bool
480
- """
380
+ """ Selected state of this element."""
481
381
 
482
382
  smooth: bool
483
- """ Smooth state of this element.
484
-
485
- :type: bool
486
- """
383
+ """ Smooth state of this element."""
487
384
 
488
385
  tag: bool
489
- """ Generic attribute scripts can use for own logic
386
+ """ Generic attribute scripts can use for own logic"""
490
387
 
491
- :type: bool
492
- """
493
-
494
- verts: BMElemSeq[BMVert]
495
- """ Verts of this face, (read-only).
388
+ uv_select: bool
389
+ """ UV selected state of this element."""
496
390
 
497
- :type: BMElemSeq[BMVert]
498
- """
391
+ verts: typing.Any
392
+ """ Verts of this face, (read-only)."""
499
393
 
500
394
  def calc_area(self) -> float:
501
395
  """Return the area of the face.
502
396
 
503
397
  :return: Return the area of the face.
504
- :rtype: float
505
398
  """
506
399
 
507
400
  def calc_center_bounds(self) -> mathutils.Vector:
508
401
  """Return bounds center of the face.
509
402
 
510
403
  :return: a 3D vector.
511
- :rtype: mathutils.Vector
512
404
  """
513
405
 
514
406
  def calc_center_median(self) -> mathutils.Vector:
515
407
  """Return median center of the face.
516
408
 
517
409
  :return: a 3D vector.
518
- :rtype: mathutils.Vector
519
410
  """
520
411
 
521
412
  def calc_center_median_weighted(self) -> mathutils.Vector:
522
413
  """Return median center of the face weighted by edge lengths.
523
414
 
524
415
  :return: a 3D vector.
525
- :rtype: mathutils.Vector
526
416
  """
527
417
 
528
418
  def calc_perimeter(self) -> float:
529
419
  """Return the perimeter of the face.
530
420
 
531
421
  :return: Return the perimeter of the face.
532
- :rtype: float
533
422
  """
534
423
 
535
424
  def calc_tangent_edge(self) -> mathutils.Vector:
536
425
  """Return face tangent based on longest edge.
537
426
 
538
427
  :return: a normalized vector.
539
- :rtype: mathutils.Vector
540
428
  """
541
429
 
542
430
  def calc_tangent_edge_diagonal(self) -> mathutils.Vector:
543
431
  """Return face tangent based on the edge farthest from any vertex.
544
432
 
545
433
  :return: a normalized vector.
546
- :rtype: mathutils.Vector
547
434
  """
548
435
 
549
436
  def calc_tangent_edge_pair(self) -> mathutils.Vector:
550
437
  """Return face tangent based on the two longest disconnected edges.
551
438
 
552
439
  :return: a normalized vector.
553
- :rtype: mathutils.Vector
554
440
  """
555
441
 
556
442
  def calc_tangent_vert_diagonal(self) -> mathutils.Vector:
557
443
  """Return face tangent based on the two most distant vertices.
558
444
 
559
445
  :return: a normalized vector.
560
- :rtype: mathutils.Vector
561
446
  """
562
447
 
563
- def copy(self, verts: bool = True, edges: bool = True) -> typing_extensions.Self:
448
+ def copy(self, *, verts: bool = True, edges: bool = True) -> typing_extensions.Self:
564
449
  """Make a copy of this face.
565
450
 
566
451
  :param verts: When set, the faces verts will be duplicated too.
567
- :type verts: bool
568
452
  :param edges: When set, the faces edges will be duplicated too.
569
- :type edges: bool
570
453
  :return: The newly created face.
571
- :rtype: typing_extensions.Self
572
454
  """
573
455
 
574
456
  def copy_from(self, other: typing_extensions.Self) -> None:
575
457
  """Copy values from another element of matching type.
576
458
 
577
459
  :param other:
578
- :type other: typing_extensions.Self
579
460
  """
580
461
 
581
462
  def copy_from_face_interp(
@@ -584,9 +465,7 @@ class BMFace:
584
465
  """Interpolate the customdata from another face onto this one (faces should overlap).
585
466
 
586
467
  :param face: The face to interpolate data from.
587
- :type face: typing_extensions.Self
588
468
  :param vert: When True, also copy vertex data.
589
- :type vert: bool
590
469
  """
591
470
 
592
471
  def hide_set(self, hide: bool) -> None:
@@ -594,7 +473,6 @@ class BMFace:
594
473
  This is different from the hide attribute because it updates the selection and hide state of associated geometry.
595
474
 
596
475
  :param hide: Hidden or visible.
597
- :type hide: bool
598
476
  """
599
477
 
600
478
  def normal_flip(self) -> None:
@@ -611,7 +489,12 @@ class BMFace:
611
489
  This is different from the select attribute because it updates the selection state of associated geometry.
612
490
 
613
491
  :param select: Select or de-select.
614
- :type select: bool
492
+ """
493
+
494
+ def uv_select_set(self, select: bool) -> None:
495
+ """Select the face.
496
+
497
+ :param select: Select or de-select.
615
498
  """
616
499
 
617
500
  def __getitem__[_GenericType1](
@@ -620,9 +503,7 @@ class BMFace:
620
503
  """
621
504
 
622
505
  :param key:
623
- :type key: BMLayerItem[_GenericType1]
624
506
  :return:
625
- :rtype: _GenericType1
626
507
  """
627
508
 
628
509
  def __setitem__[_GenericType1](
@@ -631,42 +512,35 @@ class BMFace:
631
512
  """
632
513
 
633
514
  :param key:
634
- :type key: BMLayerItem[_GenericType1]
635
515
  :param value:
636
- :type value: _GenericType1
637
516
  """
638
517
 
639
518
  def __delitem__[_GenericType1](self, key: BMLayerItem[_GenericType1]) -> None:
640
519
  """
641
520
 
642
521
  :param key:
643
- :type key: BMLayerItem[_GenericType1]
644
522
  """
645
523
 
646
524
  class BMFaceSeq:
647
525
  active: BMFace | None
648
- """ active face.
649
-
650
- :type: BMFace | None
651
- """
526
+ """ active face."""
652
527
 
653
528
  layers: BMLayerAccessFace
654
- """ custom-data layers (read-only).
655
-
656
- :type: BMLayerAccessFace
657
- """
529
+ """ custom-data layers (read-only)."""
658
530
 
659
531
  def ensure_lookup_table(self) -> None:
660
532
  """Ensure internal data needed for int subscription is initialized with verts/edges/faces, eg bm.verts[index].This needs to be called again after adding/removing data in this sequence."""
661
533
 
662
- def get(self, verts: collections.abc.Sequence[BMVert], fallback=None) -> BMFace:
534
+ def get(
535
+ self,
536
+ verts: collections.abc.Sequence[BMVert],
537
+ fallback: typing.Any | None = None,
538
+ ) -> BMFace:
663
539
  """Return a face which uses the verts passed.
664
540
 
665
541
  :param verts: Sequence of verts.
666
- :type verts: collections.abc.Sequence[BMVert]
667
542
  :param fallback: Return this value if nothing is found.
668
543
  :return: The face found or None
669
- :rtype: BMFace
670
544
  """
671
545
 
672
546
  def index_update(self) -> None:
@@ -678,34 +552,29 @@ class BMFaceSeq:
678
552
  """Create a new face from a given set of verts.
679
553
 
680
554
  :param verts: Sequence of 3 or more verts.
681
- :type verts: collections.abc.Sequence[BMVert]
682
555
  :param example: Existing face to initialize settings (optional argument).
683
- :type example: BMFace | None
684
556
  :return: The newly created face.
685
- :rtype: BMFace
686
557
  """
687
558
 
688
559
  def remove(self, face: BMFace) -> None:
689
560
  """Remove a face.
690
561
 
691
- :param face:
692
- :type face: BMFace
562
+ :param face: The face to remove.
693
563
  """
694
564
 
695
565
  def sort(
696
566
  self,
567
+ *,
697
568
  key: None
698
569
  | collections.abc.Callable[[BMVert | BMEdge | BMFace], int]
699
570
  | None = None,
700
571
  reverse: bool = False,
701
572
  ) -> None:
702
573
  """Sort the elements of this sequence, using an optional custom sort key.
703
- Indices of elements are not changed, `BMElemSeq.index_update` can be used for that.
574
+ Indices of elements are not changed, `bmesh.types.BMElemSeq.index_update` can be used for that.
704
575
 
705
576
  :param key: The key that sets the ordering of the elements.
706
- :type key: None | collections.abc.Callable[[BMVert | BMEdge | BMFace], int] | None
707
577
  :param reverse: Reverse the order of the elements
708
- :type reverse: bool
709
578
  """
710
579
 
711
580
  @typing.overload
@@ -713,441 +582,275 @@ class BMFaceSeq:
713
582
  """
714
583
 
715
584
  :param key:
716
- :type key: int
717
585
  :return:
718
- :rtype: BMFace
719
586
  """
720
587
 
721
588
  @typing.overload
722
- def __getitem__(self, key: slice) -> list[BMFace, ...]:
589
+ def __getitem__(self, key: slice) -> list[BMFace]:
723
590
  """
724
591
 
725
592
  :param key:
726
- :type key: slice
727
593
  :return:
728
- :rtype: list[BMFace, ...]
729
594
  """
730
595
 
731
596
  def __iter__(self) -> BMIter[BMFace]:
732
597
  """
733
598
 
734
599
  :return:
735
- :rtype: BMIter[BMFace]
736
600
  """
737
601
 
738
602
  def __len__(self) -> int:
739
603
  """
740
604
 
741
605
  :return:
742
- :rtype: int
743
606
  """
744
607
 
745
608
  class BMIter[_GenericType1]:
746
609
  """Internal BMesh type for looping over verts/faces/edges,
747
- used for iterating over `BMElemSeq` types.
610
+ used for iterating over `bmesh.types.BMElemSeq` types.
748
611
  """
749
612
 
750
613
  def __iter__(self) -> BMIter[_GenericType1]:
751
614
  """
752
615
 
753
616
  :return:
754
- :rtype: BMIter[_GenericType1]
755
617
  """
756
618
 
757
619
  def __next__(self) -> _GenericType1:
758
620
  """
759
621
 
760
622
  :return:
761
- :rtype: _GenericType1
762
623
  """
763
624
 
764
625
  class BMLayerAccessEdge:
765
626
  """Exposes custom-data layer attributes."""
766
627
 
767
- bool: BMLayerCollection[boolean]
768
- """ Generic boolean custom-data layer.
628
+ bool: typing.Any
629
+ """ Generic boolean custom-data layer."""
769
630
 
770
- :type: BMLayerCollection[boolean]
771
- """
631
+ color: typing.Any
632
+ """ Generic RGBA color with 8-bit precision custom-data layer."""
772
633
 
773
- color: BMLayerCollection[mathutils.Vector]
774
- """ Generic RGBA color with 8-bit precision custom-data layer.
634
+ float: typing.Any
635
+ """ Generic float custom-data layer."""
775
636
 
776
- :type: BMLayerCollection[mathutils.Vector]
777
- """
778
-
779
- float: BMLayerCollection[float]
780
- """ Generic float custom-data layer.
637
+ float_color: typing.Any
638
+ """ Generic RGBA color with float precision custom-data layer."""
781
639
 
782
- :type: BMLayerCollection[float]
783
- """
640
+ float_vector: typing.Any
641
+ """ Generic 3D vector with float precision custom-data layer."""
784
642
 
785
- float_color: BMLayerCollection[mathutils.Vector]
786
- """ Generic RGBA color with float precision custom-data layer.
643
+ int: typing.Any
644
+ """ Generic int custom-data layer."""
787
645
 
788
- :type: BMLayerCollection[mathutils.Vector]
789
- """
790
-
791
- float_vector: BMLayerCollection[mathutils.Vector]
792
- """ Generic 3D vector with float precision custom-data layer.
793
-
794
- :type: BMLayerCollection[mathutils.Vector]
795
- """
796
-
797
- freestyle: BMLayerCollection
798
- """ Accessor for Freestyle edge layer.
799
-
800
- :type: BMLayerCollection
801
- """
802
-
803
- int: BMLayerCollection[int]
804
- """ Generic int custom-data layer.
805
-
806
- :type: BMLayerCollection[int]
807
- """
808
-
809
- string: BMLayerCollection[bytes]
810
- """ Generic string custom-data layer (exposed as bytes, 255 max length).
811
-
812
- :type: BMLayerCollection[bytes]
813
- """
646
+ string: typing.Any
647
+ """ Generic string custom-data layer (exposed as bytes, 255 max length)."""
814
648
 
815
649
  class BMLayerAccessFace:
816
650
  """Exposes custom-data layer attributes."""
817
651
 
818
- bool: BMLayerCollection[boolean]
819
- """ Generic boolean custom-data layer.
820
-
821
- :type: BMLayerCollection[boolean]
822
- """
823
-
824
- color: BMLayerCollection[mathutils.Vector]
825
- """ Generic RGBA color with 8-bit precision custom-data layer.
826
-
827
- :type: BMLayerCollection[mathutils.Vector]
828
- """
829
-
830
- float: BMLayerCollection[float]
831
- """ Generic float custom-data layer.
832
-
833
- :type: BMLayerCollection[float]
834
- """
652
+ bool: typing.Any
653
+ """ Generic boolean custom-data layer."""
835
654
 
836
- float_color: BMLayerCollection[mathutils.Vector]
837
- """ Generic RGBA color with float precision custom-data layer.
655
+ color: typing.Any
656
+ """ Generic RGBA color with 8-bit precision custom-data layer."""
838
657
 
839
- :type: BMLayerCollection[mathutils.Vector]
840
- """
841
-
842
- float_vector: BMLayerCollection[mathutils.Vector]
843
- """ Generic 3D vector with float precision custom-data layer.
658
+ float: typing.Any
659
+ """ Generic float custom-data layer."""
844
660
 
845
- :type: BMLayerCollection[mathutils.Vector]
846
- """
661
+ float_color: typing.Any
662
+ """ Generic RGBA color with float precision custom-data layer."""
847
663
 
848
- freestyle: BMLayerCollection
849
- """ Accessor for Freestyle face layer.
664
+ float_vector: typing.Any
665
+ """ Generic 3D vector with float precision custom-data layer."""
850
666
 
851
- :type: BMLayerCollection
852
- """
667
+ int: typing.Any
668
+ """ Generic int custom-data layer."""
853
669
 
854
- int: BMLayerCollection[int]
855
- """ Generic int custom-data layer.
856
-
857
- :type: BMLayerCollection[int]
858
- """
859
-
860
- string: BMLayerCollection[bytes]
861
- """ Generic string custom-data layer (exposed as bytes, 255 max length).
862
-
863
- :type: BMLayerCollection[bytes]
864
- """
670
+ string: typing.Any
671
+ """ Generic string custom-data layer (exposed as bytes, 255 max length)."""
865
672
 
866
673
  class BMLayerAccessLoop:
867
674
  """Exposes custom-data layer attributes."""
868
675
 
869
- bool: BMLayerCollection[boolean]
870
- """ Generic boolean custom-data layer.
871
-
872
- :type: BMLayerCollection[boolean]
873
- """
874
-
875
- color: BMLayerCollection[mathutils.Vector]
876
- """ Generic RGBA color with 8-bit precision custom-data layer.
877
-
878
- :type: BMLayerCollection[mathutils.Vector]
879
- """
880
-
881
- float: BMLayerCollection[float]
882
- """ Generic float custom-data layer.
883
-
884
- :type: BMLayerCollection[float]
885
- """
886
-
887
- float_color: BMLayerCollection[mathutils.Vector]
888
- """ Generic RGBA color with float precision custom-data layer.
889
-
890
- :type: BMLayerCollection[mathutils.Vector]
891
- """
892
-
893
- float_vector: BMLayerCollection[mathutils.Vector]
894
- """ Generic 3D vector with float precision custom-data layer.
676
+ bool: typing.Any
677
+ """ Generic boolean custom-data layer."""
895
678
 
896
- :type: BMLayerCollection[mathutils.Vector]
897
- """
679
+ color: typing.Any
680
+ """ Generic RGBA color with 8-bit precision custom-data layer."""
898
681
 
899
- int: BMLayerCollection[int]
900
- """ Generic int custom-data layer.
682
+ float: typing.Any
683
+ """ Generic float custom-data layer."""
901
684
 
902
- :type: BMLayerCollection[int]
903
- """
685
+ float_color: typing.Any
686
+ """ Generic RGBA color with float precision custom-data layer."""
904
687
 
905
- string: BMLayerCollection[bytes]
906
- """ Generic string custom-data layer (exposed as bytes, 255 max length).
688
+ float_vector: typing.Any
689
+ """ Generic 3D vector with float precision custom-data layer."""
907
690
 
908
- :type: BMLayerCollection[bytes]
909
- """
691
+ int: typing.Any
692
+ """ Generic int custom-data layer."""
910
693
 
911
- uv: BMLayerCollection[BMLoopUV]
912
- """ Accessor for `BMLoopUV` UV (as a 2D Vector).
694
+ string: typing.Any
695
+ """ Generic string custom-data layer (exposed as bytes, 255 max length)."""
913
696
 
914
- :type: BMLayerCollection[BMLoopUV]
915
- """
697
+ uv: typing.Any
698
+ """ Accessor for `bmesh.types.BMLoopUV` UV (as a 2D Vector)."""
916
699
 
917
700
  class BMLayerAccessVert:
918
701
  """Exposes custom-data layer attributes."""
919
702
 
920
- bool: BMLayerCollection[boolean]
921
- """ Generic boolean custom-data layer.
922
-
923
- :type: BMLayerCollection[boolean]
924
- """
925
-
926
- color: BMLayerCollection[mathutils.Vector]
927
- """ Generic RGBA color with 8-bit precision custom-data layer.
703
+ bool: typing.Any
704
+ """ Generic boolean custom-data layer."""
928
705
 
929
- :type: BMLayerCollection[mathutils.Vector]
930
- """
931
-
932
- deform: BMLayerCollection[BMDeformVert]
933
- """ Vertex deform weight `BMDeformVert` (TODO).
934
-
935
- :type: BMLayerCollection[BMDeformVert]
936
- """
706
+ color: typing.Any
707
+ """ Generic RGBA color with 8-bit precision custom-data layer."""
937
708
 
938
- float: BMLayerCollection[float]
939
- """ Generic float custom-data layer.
709
+ deform: typing.Any
710
+ """ Vertex deform weight `bmesh.types.BMDeformVert` (TODO)."""
940
711
 
941
- :type: BMLayerCollection[float]
942
- """
943
-
944
- float_color: BMLayerCollection[mathutils.Vector]
945
- """ Generic RGBA color with float precision custom-data layer.
712
+ float: typing.Any
713
+ """ Generic float custom-data layer."""
946
714
 
947
- :type: BMLayerCollection[mathutils.Vector]
948
- """
715
+ float_color: typing.Any
716
+ """ Generic RGBA color with float precision custom-data layer."""
949
717
 
950
- float_vector: BMLayerCollection[mathutils.Vector]
951
- """ Generic 3D vector with float precision custom-data layer.
718
+ float_vector: typing.Any
719
+ """ Generic 3D vector with float precision custom-data layer."""
952
720
 
953
- :type: BMLayerCollection[mathutils.Vector]
954
- """
721
+ int: typing.Any
722
+ """ Generic int custom-data layer."""
955
723
 
956
- int: BMLayerCollection[int]
957
- """ Generic int custom-data layer.
958
-
959
- :type: BMLayerCollection[int]
960
- """
961
-
962
- shape: BMLayerCollection[mathutils.Vector]
963
- """ Vertex shapekey absolute location (as a 3D Vector).
964
-
965
- :type: BMLayerCollection[mathutils.Vector]
966
- """
724
+ shape: typing.Any
725
+ """ Vertex shape-key absolute location (as a 3D Vector)."""
967
726
 
968
727
  skin: typing.Any
969
728
  """ Accessor for skin layer."""
970
729
 
971
- string: BMLayerCollection[bytes]
972
- """ Generic string custom-data layer (exposed as bytes, 255 max length).
973
-
974
- :type: BMLayerCollection[bytes]
975
- """
730
+ string: typing.Any
731
+ """ Generic string custom-data layer (exposed as bytes, 255 max length)."""
976
732
 
977
733
  class BMLayerCollection[_GenericType1]:
978
734
  """Gives access to a collection of custom-data layers of the same type and behaves like Python dictionaries, except for the ability to do list like index access."""
979
735
 
980
736
  active: BMLayerItem[_GenericType1]
981
- """
982
-
983
- :type: BMLayerItem[_GenericType1]
984
- """
985
-
986
737
  is_singleton: bool
987
- """ True if there can exists only one layer of this type (read-only).
988
-
989
- :type: bool
990
- """
738
+ """ True if there can exists only one layer of this type (read-only)."""
991
739
 
992
740
  def get[_GenericType2](
993
741
  self, key: str, default: _GenericType2 = None
994
742
  ) -> BMLayerItem[_GenericType1] | _GenericType2:
995
743
  """Returns the value of the layer matching the key or default
996
- when not found (matches Python's dictionary function of the same name).
744
+ when not found (matches Pythons dictionary function of the same name).
997
745
 
998
746
  :param key: The key associated with the layer.
999
- :type key: str
1000
747
  :param default: Optional argument for the value to return if
1001
748
  key is not found.
1002
- :type default: _GenericType2
1003
749
  :return:
1004
- :rtype: BMLayerItem[_GenericType1] | _GenericType2
1005
750
  """
1006
751
 
1007
752
  def items(self) -> list[str, BMLayerItem[_GenericType1]]:
1008
753
  """Return the identifiers of collection members
1009
- (matching Python's dict.items() functionality).
754
+ (matching Pythons dict.items() functionality).
1010
755
 
1011
756
  :return: (key, value) pairs for each member of this collection.
1012
- :rtype: list[str, BMLayerItem[_GenericType1]]
1013
757
  """
1014
758
 
1015
759
  def keys(self) -> list[str]:
1016
760
  """Return the identifiers of collection members
1017
- (matching Python's dict.keys() functionality).
761
+ (matching Pythons dict.keys() functionality).
1018
762
 
1019
763
  :return: the identifiers for each member of this collection.
1020
- :rtype: list[str]
1021
764
  """
1022
765
 
1023
766
  def new(self, name: str | None = "") -> BMLayerItem[_GenericType1]:
1024
767
  """Create a new layer
1025
768
 
1026
769
  :param name: Optional name argument (will be made unique).
1027
- :type name: str | None
1028
770
  :return: The newly created layer.
1029
- :rtype: BMLayerItem[_GenericType1]
1030
771
  """
1031
772
 
1032
773
  def remove(self, layer: BMLayerItem[_GenericType1]) -> None:
1033
774
  """Remove a layer
1034
775
 
1035
776
  :param layer: The layer to remove.
1036
- :type layer: BMLayerItem[_GenericType1]
1037
777
  """
1038
778
 
1039
779
  def values(self) -> list[BMLayerItem[_GenericType1]]:
1040
780
  """Return the values of collection
1041
- (matching Python's dict.values() functionality).
781
+ (matching Pythons dict.values() functionality).
1042
782
 
1043
783
  :return: the members of this collection.
1044
- :rtype: list[BMLayerItem[_GenericType1]]
1045
784
  """
1046
785
 
1047
786
  def verify(self) -> BMLayerItem[_GenericType1]:
1048
787
  """Create a new layer or return an existing active layer
1049
788
 
1050
789
  :return: The newly verified layer.
1051
- :rtype: BMLayerItem[_GenericType1]
1052
790
  """
1053
791
 
1054
792
  class BMLayerItem[_GenericType1]:
1055
793
  """Exposes a single custom data layer, their main purpose is for use as item accessors to custom-data when used with vert/edge/face/loop data."""
1056
794
 
1057
795
  name: str
1058
- """ The layers unique name (read-only).
1059
-
1060
- :type: str
1061
- """
796
+ """ The layers unique name (read-only)."""
1062
797
 
1063
798
  def copy_from(self, other: typing_extensions.Self) -> None:
1064
- """Return a copy of the layer
799
+ """Copy data from another layer.
1065
800
 
1066
801
  :param other: Another layer to copy from.
1067
- :type other: typing_extensions.Self
1068
802
  """
1069
803
 
1070
804
  class BMLoop:
1071
- """This is normally accessed from `BMFace.loops` where each face loop represents a corner of the face."""
805
+ """This is normally accessed from `bmesh.types.BMFace.loops` where each face loop represents a corner of the face."""
1072
806
 
1073
807
  edge: BMEdge
1074
- """ The loop's edge (between this loop and the next), (read-only).
1075
-
1076
- :type: BMEdge
1077
- """
808
+ """ The loop's edge (between this loop and the next), (read-only)."""
1078
809
 
1079
810
  face: BMFace
1080
- """ The face this loop makes (read-only).
1081
-
1082
- :type: BMFace
1083
- """
811
+ """ The face this loop makes (read-only)."""
1084
812
 
1085
813
  index: int
1086
- """ Index of this element.
1087
-
1088
- :type: int
1089
- """
814
+ """ Index of this element."""
1090
815
 
1091
816
  is_convex: bool
1092
- """ True when this loop is at the convex corner of a face, depends on a valid face normal (read-only).
1093
-
1094
- :type: bool
1095
- """
817
+ """ True when this loop is at the convex corner of a face, depends on a valid face normal (read-only)."""
1096
818
 
1097
819
  is_valid: bool
1098
- """ True when this element is valid (hasn't been removed).
1099
-
1100
- :type: bool
1101
- """
820
+ """ True when this element is valid (hasn't been removed)."""
1102
821
 
1103
822
  link_loop_next: typing_extensions.Self
1104
- """ The next face corner (read-only).
1105
-
1106
- :type: typing_extensions.Self
1107
- """
823
+ """ The next face corner (read-only)."""
1108
824
 
1109
825
  link_loop_prev: typing_extensions.Self
1110
- """ The previous face corner (read-only).
1111
-
1112
- :type: typing_extensions.Self
1113
- """
826
+ """ The previous face corner (read-only)."""
1114
827
 
1115
828
  link_loop_radial_next: typing_extensions.Self
1116
- """ The next loop around the edge (read-only).
1117
-
1118
- :type: typing_extensions.Self
1119
- """
829
+ """ The next loop around the edge (read-only)."""
1120
830
 
1121
831
  link_loop_radial_prev: typing_extensions.Self
1122
- """ The previous loop around the edge (read-only).
1123
-
1124
- :type: typing_extensions.Self
1125
- """
832
+ """ The previous loop around the edge (read-only)."""
1126
833
 
1127
- link_loops: BMElemSeq[BMLoop]
1128
- """ Loops connected to this loop, (read-only).
1129
-
1130
- :type: BMElemSeq[BMLoop]
1131
- """
834
+ link_loops: typing.Any
835
+ """ Loops connected to this loop, (read-only)."""
1132
836
 
1133
837
  tag: bool
1134
- """ Generic attribute scripts can use for own logic
838
+ """ Generic attribute scripts can use for own logic"""
1135
839
 
1136
- :type: bool
1137
- """
840
+ uv_select_edge: bool
841
+ """ UV selected state of this element."""
1138
842
 
1139
- vert: BMVert
1140
- """ The loop's vertex (read-only).
843
+ uv_select_vert: bool
844
+ """ UV selected state of this element."""
1141
845
 
1142
- :type: BMVert
1143
- """
846
+ vert: BMVert
847
+ """ The loop's vertex (read-only)."""
1144
848
 
1145
849
  def calc_angle(self) -> float:
1146
850
  """Return the angle at this loops corner of the face.
1147
851
  This is calculated so sharper corners give lower angles.
1148
852
 
1149
853
  :return: The angle in radians.
1150
- :rtype: float
1151
854
  """
1152
855
 
1153
856
  def calc_normal(self) -> mathutils.Vector:
@@ -1155,7 +858,6 @@ class BMLoop:
1155
858
  Falls back to the face normal for straight lines.
1156
859
 
1157
860
  :return: a normalized vector.
1158
- :rtype: mathutils.Vector
1159
861
  """
1160
862
 
1161
863
  def calc_tangent(self) -> mathutils.Vector:
@@ -1163,14 +865,12 @@ class BMLoop:
1163
865
  Falls back to the face normal for straight lines.
1164
866
 
1165
867
  :return: a normalized vector.
1166
- :rtype: mathutils.Vector
1167
868
  """
1168
869
 
1169
870
  def copy_from(self, other: typing_extensions.Self) -> None:
1170
871
  """Copy values from another element of matching type.
1171
872
 
1172
873
  :param other:
1173
- :type other: typing_extensions.Self
1174
874
  """
1175
875
 
1176
876
  def copy_from_face_interp(
@@ -1179,11 +879,20 @@ class BMLoop:
1179
879
  """Interpolate the customdata from a face onto this loop (the loops vert should overlap the face).
1180
880
 
1181
881
  :param face: The face to interpolate data from.
1182
- :type face: BMFace
1183
882
  :param vert: When enabled, interpolate the loops vertex data (optional).
1184
- :type vert: bool
1185
883
  :param multires: When enabled, interpolate the loops multires data (optional).
1186
- :type multires: bool
884
+ """
885
+
886
+ def uv_select_edge_set(self, select: bool) -> None:
887
+ """Set the UV edge selection state.
888
+
889
+ :param select: Select or de-select.
890
+ """
891
+
892
+ def uv_select_vert_set(self, select: bool) -> None:
893
+ """Select the UV vertex.
894
+
895
+ :param select: Select or de-select.
1187
896
  """
1188
897
 
1189
898
  def __getitem__[_GenericType1](
@@ -1192,9 +901,7 @@ class BMLoop:
1192
901
  """
1193
902
 
1194
903
  :param key:
1195
- :type key: BMLayerItem[_GenericType1]
1196
904
  :return:
1197
- :rtype: _GenericType1
1198
905
  """
1199
906
 
1200
907
  def __setitem__[_GenericType1](
@@ -1203,173 +910,102 @@ class BMLoop:
1203
910
  """
1204
911
 
1205
912
  :param key:
1206
- :type key: BMLayerItem[_GenericType1]
1207
913
  :param value:
1208
- :type value: _GenericType1
1209
914
  """
1210
915
 
1211
916
  def __delitem__[_GenericType1](self, key: BMLayerItem[_GenericType1]) -> None:
1212
917
  """
1213
918
 
1214
919
  :param key:
1215
- :type key: BMLayerItem[_GenericType1]
1216
920
  """
1217
921
 
1218
922
  class BMLoopSeq:
1219
923
  layers: BMLayerAccessLoop
1220
- """ custom-data layers (read-only).
1221
-
1222
- :type: BMLayerAccessLoop
1223
- """
924
+ """ custom-data layers (read-only)."""
1224
925
 
1225
926
  @typing.overload
1226
927
  def __getitem__(self, key: int) -> BMLoop:
1227
928
  """
1228
929
 
1229
930
  :param key:
1230
- :type key: int
1231
931
  :return:
1232
- :rtype: BMLoop
1233
932
  """
1234
933
 
1235
934
  @typing.overload
1236
- def __getitem__(self, key: slice) -> list[BMLoop, ...]:
935
+ def __getitem__(self, key: slice) -> list[BMLoop]:
1237
936
  """
1238
937
 
1239
938
  :param key:
1240
- :type key: slice
1241
939
  :return:
1242
- :rtype: list[BMLoop, ...]
1243
940
  """
1244
941
 
1245
942
  def __iter__(self) -> BMIter[BMLoop]:
1246
943
  """
1247
944
 
1248
945
  :return:
1249
- :rtype: BMIter[BMLoop]
1250
946
  """
1251
947
 
1252
948
  def __len__(self) -> int:
1253
949
  """
1254
950
 
1255
951
  :return:
1256
- :rtype: int
1257
952
  """
1258
953
 
1259
954
  class BMLoopUV:
1260
955
  pin_uv: bool
1261
- """ UV pin state.
1262
-
1263
- :type: bool
1264
- """
1265
-
1266
- select: bool
1267
- """ UV select state.
1268
-
1269
- :type: bool
1270
- """
1271
-
1272
- select_edge: bool
1273
- """ UV edge select state.
1274
-
1275
- :type: bool
1276
- """
956
+ """ UV pin state."""
1277
957
 
1278
958
  uv: mathutils.Vector
1279
- """ Loops UV (as a 2D Vector).
1280
-
1281
- :type: mathutils.Vector
1282
- """
959
+ """ Loops UV (as a 2D Vector)."""
1283
960
 
1284
961
  class BMVert:
1285
962
  """The BMesh vertex type"""
1286
963
 
1287
964
  co: mathutils.Vector
1288
- """ The coordinates for this vertex as a 3D, wrapped vector.
1289
-
1290
- :type: mathutils.Vector
1291
- """
965
+ """ The coordinates for this vertex as a 3D, wrapped vector."""
1292
966
 
1293
967
  hide: bool
1294
- """ Hidden state of this element.
1295
-
1296
- :type: bool
1297
- """
968
+ """ Hidden state of this element."""
1298
969
 
1299
970
  index: int
1300
- """ Index of this element.
1301
-
1302
- :type: int
1303
- """
971
+ """ Index of this element."""
1304
972
 
1305
973
  is_boundary: bool
1306
- """ True when this vertex is connected to boundary edges (read-only).
1307
-
1308
- :type: bool
1309
- """
974
+ """ True when this vertex is connected to boundary edges (read-only)."""
1310
975
 
1311
976
  is_manifold: bool
1312
- """ True when this vertex is manifold (read-only).
1313
-
1314
- :type: bool
1315
- """
977
+ """ True when this vertex is manifold (read-only)."""
1316
978
 
1317
979
  is_valid: bool
1318
- """ True when this element is valid (hasn't been removed).
1319
-
1320
- :type: bool
1321
- """
980
+ """ True when this element is valid (hasn't been removed)."""
1322
981
 
1323
982
  is_wire: bool
1324
- """ True when this vertex is not connected to any faces (read-only).
983
+ """ True when this vertex is not connected to any faces (read-only)."""
1325
984
 
1326
- :type: bool
1327
- """
985
+ link_edges: typing.Any
986
+ """ Edges connected to this vertex (read-only)."""
1328
987
 
1329
- link_edges: BMElemSeq[BMEdge]
1330
- """ Edges connected to this vertex (read-only).
988
+ link_faces: typing.Any
989
+ """ Faces connected to this vertex (read-only)."""
1331
990
 
1332
- :type: BMElemSeq[BMEdge]
1333
- """
1334
-
1335
- link_faces: BMElemSeq[BMFace]
1336
- """ Faces connected to this vertex (read-only).
1337
-
1338
- :type: BMElemSeq[BMFace]
1339
- """
1340
-
1341
- link_loops: BMElemSeq[BMLoop]
1342
- """ Loops that use this vertex (read-only).
1343
-
1344
- :type: BMElemSeq[BMLoop]
1345
- """
991
+ link_loops: typing.Any
992
+ """ Loops that use this vertex (read-only)."""
1346
993
 
1347
994
  normal: mathutils.Vector
1348
- """ The normal for this vertex as a 3D, wrapped vector.
1349
-
1350
- :type: mathutils.Vector
1351
- """
995
+ """ The normal for this vertex as a 3D, wrapped vector."""
1352
996
 
1353
997
  select: bool
1354
- """ Selected state of this element.
1355
-
1356
- :type: bool
1357
- """
998
+ """ Selected state of this element."""
1358
999
 
1359
1000
  tag: bool
1360
- """ Generic attribute scripts can use for own logic
1361
-
1362
- :type: bool
1363
- """
1001
+ """ Generic attribute scripts can use for own logic"""
1364
1002
 
1365
1003
  def calc_edge_angle(self, fallback: typing.Any | None = None) -> float:
1366
- """Return the angle between this vert's two connected edges.
1004
+ """Return the angle between this verts two connected edges.
1367
1005
 
1368
- :param fallback: return this when the vert doesn't have 2 edges
1006
+ :param fallback: return this when the vert doesnt have 2 edges
1369
1007
  (instead of raising a `ValueError`).
1370
- :type fallback: typing.Any | None
1371
1008
  :return: Angle between edges in radians.
1372
- :rtype: float
1373
1009
  """
1374
1010
 
1375
1011
  def calc_shell_factor(self) -> float:
@@ -1378,21 +1014,18 @@ class BMVert:
1378
1014
  This is used to maintain shell thickness when offsetting verts along their normals.
1379
1015
 
1380
1016
  :return: offset multiplier
1381
- :rtype: float
1382
1017
  """
1383
1018
 
1384
1019
  def copy_from(self, other: typing_extensions.Self) -> None:
1385
1020
  """Copy values from another element of matching type.
1386
1021
 
1387
1022
  :param other:
1388
- :type other: typing_extensions.Self
1389
1023
  """
1390
1024
 
1391
1025
  def copy_from_face_interp(self, face: BMFace) -> None:
1392
1026
  """Interpolate the customdata from a face onto this loop (the loops vert should overlap the face).
1393
1027
 
1394
1028
  :param face: The face to interpolate data from.
1395
- :type face: BMFace
1396
1029
  """
1397
1030
 
1398
1031
  def copy_from_vert_interp(
@@ -1401,9 +1034,7 @@ class BMVert:
1401
1034
  """Interpolate the customdata from a vert between 2 other verts.
1402
1035
 
1403
1036
  :param vert_pair: The verts between which to interpolate data from.
1404
- :type vert_pair: collections.abc.Sequence[BMVert]
1405
- :param fac:
1406
- :type fac: float
1037
+ :param fac: The interpolation factor.
1407
1038
  """
1408
1039
 
1409
1040
  def hide_set(self, hide: bool) -> None:
@@ -1411,7 +1042,6 @@ class BMVert:
1411
1042
  This is different from the hide attribute because it updates the selection and hide state of associated geometry.
1412
1043
 
1413
1044
  :param hide: Hidden or visible.
1414
- :type hide: bool
1415
1045
  """
1416
1046
 
1417
1047
  def normal_update(self) -> None:
@@ -1425,7 +1055,6 @@ class BMVert:
1425
1055
  This is different from the select attribute because it updates the selection state of associated geometry.
1426
1056
 
1427
1057
  :param select: Select or de-select.
1428
- :type select: bool
1429
1058
  """
1430
1059
 
1431
1060
  def __getitem__[_GenericType1](
@@ -1434,9 +1063,7 @@ class BMVert:
1434
1063
  """
1435
1064
 
1436
1065
  :param key:
1437
- :type key: BMLayerItem[_GenericType1]
1438
1066
  :return:
1439
- :rtype: _GenericType1
1440
1067
  """
1441
1068
 
1442
1069
  def __setitem__[_GenericType1](
@@ -1445,24 +1072,18 @@ class BMVert:
1445
1072
  """
1446
1073
 
1447
1074
  :param key:
1448
- :type key: BMLayerItem[_GenericType1]
1449
1075
  :param value:
1450
- :type value: _GenericType1
1451
1076
  """
1452
1077
 
1453
1078
  def __delitem__[_GenericType1](self, key: BMLayerItem[_GenericType1]) -> None:
1454
1079
  """
1455
1080
 
1456
1081
  :param key:
1457
- :type key: BMLayerItem[_GenericType1]
1458
1082
  """
1459
1083
 
1460
1084
  class BMVertSeq:
1461
1085
  layers: BMLayerAccessVert
1462
- """ custom-data layers (read-only).
1463
-
1464
- :type: BMLayerAccessVert
1465
- """
1086
+ """ custom-data layers (read-only)."""
1466
1087
 
1467
1088
  def ensure_lookup_table(self) -> None:
1468
1089
  """Ensure internal data needed for int subscription is initialized with verts/edges/faces, eg bm.verts[index].This needs to be called again after adding/removing data in this sequence."""
@@ -1478,34 +1099,29 @@ class BMVertSeq:
1478
1099
  """Create a new vertex.
1479
1100
 
1480
1101
  :param co: The initial location of the vertex (optional argument).
1481
- :type co: collections.abc.Sequence[float] | mathutils.Vector
1482
1102
  :param example: Existing vert to initialize settings.
1483
- :type example: BMVert | None
1484
1103
  :return: The newly created vertex.
1485
- :rtype: BMVert
1486
1104
  """
1487
1105
 
1488
1106
  def remove(self, vert: BMVert) -> None:
1489
1107
  """Remove a vert.
1490
1108
 
1491
- :param vert:
1492
- :type vert: BMVert
1109
+ :param vert: The vert to remove.
1493
1110
  """
1494
1111
 
1495
1112
  def sort(
1496
1113
  self,
1114
+ *,
1497
1115
  key: None
1498
1116
  | collections.abc.Callable[[BMVert | BMEdge | BMFace], int]
1499
1117
  | None = None,
1500
1118
  reverse: bool = False,
1501
1119
  ) -> None:
1502
1120
  """Sort the elements of this sequence, using an optional custom sort key.
1503
- Indices of elements are not changed, `BMElemSeq.index_update` can be used for that.
1121
+ Indices of elements are not changed, `bmesh.types.BMElemSeq.index_update` can be used for that.
1504
1122
 
1505
1123
  :param key: The key that sets the ordering of the elements.
1506
- :type key: None | collections.abc.Callable[[BMVert | BMEdge | BMFace], int] | None
1507
1124
  :param reverse: Reverse the order of the elements
1508
- :type reverse: bool
1509
1125
  """
1510
1126
 
1511
1127
  @typing.overload
@@ -1513,100 +1129,70 @@ class BMVertSeq:
1513
1129
  """
1514
1130
 
1515
1131
  :param key:
1516
- :type key: int
1517
1132
  :return:
1518
- :rtype: BMVert
1519
1133
  """
1520
1134
 
1521
1135
  @typing.overload
1522
- def __getitem__(self, key: slice) -> list[BMVert, ...]:
1136
+ def __getitem__(self, key: slice) -> list[BMVert]:
1523
1137
  """
1524
1138
 
1525
1139
  :param key:
1526
- :type key: slice
1527
1140
  :return:
1528
- :rtype: list[BMVert, ...]
1529
1141
  """
1530
1142
 
1531
1143
  def __iter__(self) -> BMIter[BMVert]:
1532
1144
  """
1533
1145
 
1534
1146
  :return:
1535
- :rtype: BMIter[BMVert]
1536
1147
  """
1537
1148
 
1538
1149
  def __len__(self) -> int:
1539
1150
  """
1540
1151
 
1541
1152
  :return:
1542
- :rtype: int
1543
1153
  """
1544
1154
 
1545
1155
  class BMesh:
1546
1156
  """The BMesh data structure"""
1547
1157
 
1548
1158
  edges: BMEdgeSeq
1549
- """ This meshes edge sequence (read-only).
1550
-
1551
- :type: BMEdgeSeq
1552
- """
1159
+ """ This meshes edge sequence (read-only)."""
1553
1160
 
1554
1161
  faces: BMFaceSeq
1555
- """ This meshes face sequence (read-only).
1556
-
1557
- :type: BMFaceSeq
1558
- """
1162
+ """ This meshes face sequence (read-only)."""
1559
1163
 
1560
1164
  is_valid: bool
1561
- """ True when this element is valid (hasn't been removed).
1562
-
1563
- :type: bool
1564
- """
1165
+ """ True when this element is valid (hasn't been removed)."""
1565
1166
 
1566
1167
  is_wrapped: bool
1567
- """ True when this mesh is owned by blender (typically the editmode BMesh).
1568
-
1569
- :type: bool
1570
- """
1168
+ """ True when this mesh is owned by blender (typically the editmode BMesh)."""
1571
1169
 
1572
1170
  loops: BMLoopSeq
1573
- """ This meshes loops (read-only).
1574
-
1575
- :type: BMLoopSeq
1576
- """
1171
+ """ This meshes loops (read-only)."""
1577
1172
 
1578
1173
  select_history: BMEditSelSeq
1579
- """ Sequence of selected items (the last is displayed as active).
1580
-
1581
- :type: BMEditSelSeq
1582
- """
1174
+ """ Sequence of selected items (the last is displayed as active)."""
1583
1175
 
1584
- select_mode: set
1585
- """ The selection mode, values can be {'VERT', 'EDGE', 'FACE'}, can't be assigned an empty set.
1176
+ select_mode: set[typing.Literal["VERT", "EDGE", "FACE"]]
1177
+ """ The selection mode, cannot be assigned an empty set."""
1586
1178
 
1587
- :type: set
1588
- """
1179
+ uv_select_sync_valid: bool
1180
+ """ When true, the UV selection has been synchronized. Setting to False means the UV selection will be ignored. While setting to true is supported it is up to the script author to ensure a correct selection state before doing so."""
1589
1181
 
1590
1182
  verts: BMVertSeq
1591
- """ This meshes vert sequence (read-only).
1592
-
1593
- :type: BMVertSeq
1594
- """
1183
+ """ This meshes vert sequence (read-only)."""
1595
1184
 
1596
1185
  def calc_loop_triangles(self) -> list[tuple[BMLoop, BMLoop, BMLoop]]:
1597
1186
  """Calculate triangle tessellation from quads/ngons.
1598
1187
 
1599
1188
  :return: The triangulated faces.
1600
- :rtype: list[tuple[BMLoop, BMLoop, BMLoop]]
1601
1189
  """
1602
1190
 
1603
- def calc_volume(self, signed: bool = False) -> float:
1191
+ def calc_volume(self, *, signed: bool = False) -> float:
1604
1192
  """Calculate mesh volume based on face normals.
1605
1193
 
1606
1194
  :param signed: when signed is true, negative values may be returned.
1607
- :type signed: bool
1608
1195
  :return: The volume of the mesh.
1609
- :rtype: float
1610
1196
  """
1611
1197
 
1612
1198
  def clear(self) -> None:
@@ -1616,7 +1202,6 @@ class BMesh:
1616
1202
  """
1617
1203
 
1618
1204
  :return: A copy of this BMesh.
1619
- :rtype: typing_extensions.Self
1620
1205
  """
1621
1206
 
1622
1207
  def free(self) -> None:
@@ -1625,29 +1210,26 @@ class BMesh:
1625
1210
  def from_mesh(
1626
1211
  self,
1627
1212
  mesh: bpy.types.Mesh,
1213
+ *,
1628
1214
  face_normals: bool = True,
1629
1215
  vertex_normals: bool = True,
1630
1216
  use_shape_key: bool = False,
1631
1217
  shape_key_index: int = 0,
1632
1218
  ) -> None:
1633
- """Initialize this bmesh from existing mesh datablock.
1219
+ """Initialize this bmesh from existing mesh data-block.
1634
1220
 
1635
1221
  :param mesh: The mesh data to load.
1636
- :type mesh: bpy.types.Mesh
1637
- :param face_normals:
1638
- :type face_normals: bool
1639
- :param vertex_normals:
1640
- :type vertex_normals: bool
1222
+ :param face_normals: Calculate face normals.
1223
+ :param vertex_normals: Calculate vertex normals.
1641
1224
  :param use_shape_key: Use the locations from a shape key.
1642
- :type use_shape_key: bool
1643
1225
  :param shape_key_index: The shape key index to use.
1644
- :type shape_key_index: int
1645
1226
  """
1646
1227
 
1647
1228
  def from_object(
1648
1229
  self,
1649
1230
  object: bpy.types.Object,
1650
1231
  depsgraph: bpy.types.Depsgraph,
1232
+ *,
1651
1233
  cage: bool = False,
1652
1234
  face_normals: bool = True,
1653
1235
  vertex_normals: bool = True,
@@ -1655,46 +1237,118 @@ class BMesh:
1655
1237
  """Initialize this bmesh from existing object data-block (only meshes are currently supported).
1656
1238
 
1657
1239
  :param object: The object data to load.
1658
- :type object: bpy.types.Object
1659
- :param depsgraph:
1660
- :type depsgraph: bpy.types.Depsgraph
1240
+ :param depsgraph: The dependency graph for evaluated data.
1661
1241
  :param cage: Get the mesh as a deformed cage.
1662
- :type cage: bool
1663
1242
  :param face_normals: Calculate face normals.
1664
- :type face_normals: bool
1665
1243
  :param vertex_normals: Calculate vertex normals.
1666
- :type vertex_normals: bool
1667
1244
  """
1668
1245
 
1669
1246
  def normal_update(self) -> None:
1670
1247
  """Update normals of mesh faces and verts."""
1671
1248
 
1672
1249
  def select_flush(self, select: bool) -> None:
1673
- """Flush selection, independent of the current selection mode.
1250
+ """Flush selection from vertices, independent of the current selection mode.
1674
1251
 
1675
1252
  :param select: flush selection or de-selected elements.
1676
- :type select: bool
1677
1253
  """
1678
1254
 
1679
- def select_flush_mode(self) -> None:
1680
- """flush selection based on the current mode current `BMesh.select_mode`."""
1255
+ def select_flush_mode(self, *, flush_down: bool = False) -> None:
1256
+ """Flush selection based on the current mode current `bmesh.types.BMesh.select_mode`.
1257
+
1258
+ :param flush_down: Flush selection down from faces to edges & verts or from edges to verts. This option is ignored when vertex selection mode is enabled.
1259
+ """
1681
1260
 
1682
1261
  def to_mesh(self, mesh: bpy.types.Mesh) -> None:
1683
- """Writes this BMesh data into an existing Mesh datablock.
1262
+ """Writes this BMesh data into an existing Mesh data-block.
1684
1263
 
1685
1264
  :param mesh: The mesh data to write into.
1686
- :type mesh: bpy.types.Mesh
1687
1265
  """
1688
1266
 
1689
1267
  def transform(
1690
1268
  self,
1691
1269
  matrix: collections.abc.Sequence[collections.abc.Sequence[float]]
1692
1270
  | mathutils.Matrix,
1693
- filter=None,
1271
+ *,
1272
+ filter: set[typing.Literal["SELECT", "HIDE", "SEAM", "SMOOTH", "TAG"]]
1273
+ | None = None,
1694
1274
  ) -> None:
1695
1275
  """Transform the mesh (optionally filtering flagged data only).
1696
1276
 
1697
- :param matrix: 4x4x transform matrix.
1698
- :type matrix: collections.abc.Sequence[collections.abc.Sequence[float]] | mathutils.Matrix
1699
- :param filter: set of values in ('SELECT', 'HIDE', 'SEAM', 'SMOOTH', 'TAG').
1277
+ :param matrix: 4x4 transform matrix.
1278
+ :param filter: Flag to filter vertices.
1279
+ """
1280
+
1281
+ def uv_select_flush(self, select: bool) -> None:
1282
+ """Flush selection from UV vertices to edges & faces independent of the selection mode.
1283
+
1284
+ :param select: Flush selection or de-selected elements.
1285
+ """
1286
+
1287
+ def uv_select_flush_mode(self, *, flush_down: bool = False) -> None:
1288
+ """Flush selection based on the current mode current `BMesh.select_mode`.
1289
+
1290
+ :param flush_down: Flush selection down from faces to edges & verts or from edges to verts. This option is ignored when vertex selection mode is enabled.
1291
+ """
1292
+
1293
+ def uv_select_flush_shared(self, select: bool) -> None:
1294
+ """Flush selection from UV vertices to contiguous UVs independent of the selection mode.
1295
+
1296
+ :param select: Flush selection or de-selected elements.
1700
1297
  """
1298
+
1299
+ def uv_select_foreach_set(
1300
+ self,
1301
+ select: bool,
1302
+ /,
1303
+ *,
1304
+ loop_verts: collections.abc.Iterable[BMLoop] = (),
1305
+ loop_edges: collections.abc.Iterable[BMLoop] = (),
1306
+ faces: collections.abc.Iterable[BMFace] = (),
1307
+ sticky_select_mode: typing.Literal[
1308
+ "SHARED_LOCATION", "DISABLED", "SHARED_VERTEX"
1309
+ ] = "SHARED_LOCATION",
1310
+ ) -> None:
1311
+ """Set the UV selection state for loop-vertices, loop-edges & faces.This is a close equivalent to selecting in the UV editor.
1312
+
1313
+ :param select: The selection state to set.
1314
+ :param loop_verts: Loop verts to operate on.
1315
+ :param loop_edges: Loop edges to operate on.
1316
+ :param faces: Faces to operate on.
1317
+ :param sticky_select_mode: See UV_STICKY_SELECT_MODE_REF.
1318
+ """
1319
+
1320
+ def uv_select_foreach_set_from_mesh(
1321
+ self,
1322
+ select: bool,
1323
+ /,
1324
+ *,
1325
+ verts: collections.abc.Iterable[BMVert] = (),
1326
+ edges: collections.abc.Iterable[BMEdge] = (),
1327
+ faces: collections.abc.Iterable[BMFace] = (),
1328
+ sticky_select_mode: typing.Literal[
1329
+ "SHARED_LOCATION", "DISABLED", "SHARED_VERTEX"
1330
+ ] = "SHARED_LOCATION",
1331
+ ) -> None:
1332
+ """Select or de-select mesh elements, updating the UV selection.An equivalent to selecting from the 3D viewport for selection operations that support maintaining a synchronized UV selection.
1333
+
1334
+ :param select: The selection state to set.
1335
+ :param verts: Verts to operate on.
1336
+ :param edges: Edges to operate on.
1337
+ :param faces: Faces to operate on.
1338
+ :param sticky_select_mode: See UV_STICKY_SELECT_MODE_REF.
1339
+ """
1340
+
1341
+ def uv_select_sync_from_mesh(
1342
+ self,
1343
+ *,
1344
+ sticky_select_mode: typing.Literal[
1345
+ "SHARED_LOCATION", "DISABLED", "SHARED_VERTEX"
1346
+ ] = "SHARED_LOCATION",
1347
+ ) -> None:
1348
+ """Sync selection from mesh to UVs.
1349
+
1350
+ :param sticky_select_mode: Behavior when flushing from the mesh to UV selection UV_STICKY_SELECT_MODE_REF. This should only be used when preparing to create a UV selection.
1351
+ """
1352
+
1353
+ def uv_select_sync_to_mesh(self) -> None:
1354
+ """Sync selection from UVs to the mesh."""