fake-bpy-module-latest 20251002__py3-none-any.whl → 20260113__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 (138) hide show
  1. {bl_i18n_utils → _bl_i18n_utils}/__init__.pyi +1 -0
  2. {bl_i18n_utils → _bl_i18n_utils}/settings/__init__.pyi +2 -0
  3. _bl_i18n_utils/utils_spell_check/__init__.pyi +22 -0
  4. {bl_ui_utils → _bl_ui_utils}/__init__.pyi +1 -0
  5. _bpy_internal/__init__.pyi +1 -0
  6. _bpy_internal/disk_file_hash_service/__init__.pyi +19 -0
  7. _bpy_internal/disk_file_hash_service/backend_sqlite/__init__.pyi +48 -0
  8. _bpy_internal/disk_file_hash_service/hash_service/__init__.pyi +64 -0
  9. _bpy_internal/disk_file_hash_service/types/__init__.pyi +53 -0
  10. _bpy_types/__init__.pyi +17 -1
  11. aud/__init__.pyi +70 -0
  12. bl_math/__init__.pyi +3 -1
  13. bl_operators/__init__.pyi +1 -0
  14. bl_operators/anim/__init__.pyi +49 -0
  15. bl_operators/copy_global_transform/__init__.pyi +271 -0
  16. bl_operators/node/__init__.pyi +38 -4
  17. bl_operators/object/__init__.pyi +0 -7
  18. bl_operators/uvcalc_follow_active/__init__.pyi +1 -1
  19. bl_operators/uvcalc_transform/__init__.pyi +21 -8
  20. bl_ui/__init__.pyi +3 -0
  21. bl_ui/generic_ui_list/__init__.pyi +2 -2
  22. bl_ui/node_add_menu/__init__.pyi +13 -6
  23. bl_ui/node_add_menu_compositor/__init__.pyi +75 -19
  24. bl_ui/node_add_menu_geometry/__init__.pyi +83 -83
  25. bl_ui/node_add_menu_shader/__init__.pyi +21 -19
  26. bl_ui/node_add_menu_texture/__init__.pyi +1 -1
  27. bl_ui/properties_constraint/__init__.pyi +68 -0
  28. bl_ui/properties_object/__init__.pyi +37 -0
  29. bl_ui/properties_paint_common/__init__.pyi +23 -6
  30. bl_ui/properties_strip/__init__.pyi +786 -0
  31. bl_ui/properties_strip_modifier/__init__.pyi +47 -0
  32. bl_ui/properties_view_layer/__init__.pyi +7 -0
  33. bl_ui/space_clip/__init__.pyi +1 -0
  34. bl_ui/space_dopesheet/__init__.pyi +56 -0
  35. bl_ui/space_image/__init__.pyi +2 -2
  36. bl_ui/space_node/__init__.pyi +31 -37
  37. bl_ui/space_properties/__init__.pyi +31 -0
  38. bl_ui/space_sequencer/__init__.pyi +42 -772
  39. bl_ui/space_time/__init__.pyi +7 -29
  40. bl_ui/space_topbar/__init__.pyi +7 -0
  41. bl_ui/space_userpref/__init__.pyi +7 -2
  42. bl_ui/space_view3d/__init__.pyi +38 -10
  43. bl_ui/space_view3d_sidebar/__init__.pyi +135 -0
  44. bl_ui/space_view3d_toolbar/__init__.pyi +2 -1
  45. blf/__init__.pyi +9 -6
  46. bmesh/ops/__init__.pyi +3 -0
  47. bmesh/types/__init__.pyi +184 -36
  48. bmesh/utils/__init__.pyi +22 -5
  49. bpy/app/__init__.pyi +57 -55
  50. bpy/app/translations/__init__.pyi +1 -1
  51. bpy/ops/anim/__init__.pyi +18 -12
  52. bpy/ops/armature/__init__.pyi +1 -1
  53. bpy/ops/curves/__init__.pyi +3 -3
  54. bpy/ops/export_anim/__init__.pyi +3 -0
  55. bpy/ops/export_scene/__init__.pyi +1 -1
  56. bpy/ops/geometry/__init__.pyi +0 -83
  57. bpy/ops/grease_pencil/__init__.pyi +3 -3
  58. bpy/ops/import_anim/__init__.pyi +2 -2
  59. bpy/ops/mesh/__init__.pyi +2 -2
  60. bpy/ops/nla/__init__.pyi +1 -1
  61. bpy/ops/node/__init__.pyi +29 -7
  62. bpy/ops/object/__init__.pyi +93 -0
  63. bpy/ops/pose/__init__.pyi +4 -4
  64. bpy/ops/render/__init__.pyi +10 -7
  65. bpy/ops/screen/__init__.pyi +29 -0
  66. bpy/ops/sculpt/__init__.pyi +30 -41
  67. bpy/ops/sequencer/__init__.pyi +67 -3
  68. bpy/ops/text/__init__.pyi +3 -0
  69. bpy/ops/transform/__init__.pyi +10 -3
  70. bpy/ops/uv/__init__.pyi +54 -0
  71. bpy/ops/wm/__init__.pyi +20 -32
  72. bpy/props/__init__.pyi +5 -11
  73. bpy/stub_internal/rna_enums/__init__.pyi +50 -21
  74. bpy/types/__init__.pyi +10237 -2994
  75. bpy/utils/__init__.pyi +3 -3
  76. bpy/utils/previews/__init__.pyi +1 -1
  77. bpy_extras/anim_utils/__init__.pyi +21 -8
  78. bpy_extras/id_map_utils/__init__.pyi +15 -6
  79. bpy_extras/keyconfig_utils/__init__.pyi +1 -1
  80. {fake_bpy_module_latest-20251002.dist-info → fake_bpy_module_latest-20260113.dist-info}/METADATA +3 -1
  81. {fake_bpy_module_latest-20251002.dist-info → fake_bpy_module_latest-20260113.dist-info}/RECORD +138 -129
  82. {fake_bpy_module_latest-20251002.dist-info → fake_bpy_module_latest-20260113.dist-info}/top_level.txt +14 -14
  83. freestyle/utils/__init__.pyi +1 -1
  84. gpu/matrix/__init__.pyi +1 -1
  85. gpu/shader/__init__.pyi +22 -1
  86. gpu/state/__init__.pyi +77 -27
  87. gpu/types/__init__.pyi +91 -20
  88. gpu_extras/presets/__init__.pyi +7 -0
  89. idprop/types/__init__.pyi +6 -2
  90. imbuf/__init__.pyi +2 -2
  91. imbuf/types/__init__.pyi +2 -2
  92. keyingsets_builtins/__init__.pyi +1 -1
  93. mathutils/__init__.pyi +53 -29
  94. mathutils/bvhtree/__init__.pyi +6 -4
  95. mathutils/geometry/__init__.pyi +31 -13
  96. mathutils/interpolate/__init__.pyi +4 -2
  97. {animsys_refactor → _animsys_refactor}/__init__.pyi +0 -0
  98. {animsys_refactor → _animsys_refactor}/py.typed +0 -0
  99. {bl_console_utils → _bl_console_utils}/__init__.pyi +0 -0
  100. {bl_console_utils → _bl_console_utils}/autocomplete/__init__.pyi +0 -0
  101. {bl_console_utils → _bl_console_utils}/autocomplete/complete_calltip/__init__.pyi +0 -0
  102. {bl_console_utils → _bl_console_utils}/autocomplete/complete_import/__init__.pyi +0 -0
  103. {bl_console_utils → _bl_console_utils}/autocomplete/complete_namespace/__init__.pyi +0 -0
  104. {bl_console_utils → _bl_console_utils}/autocomplete/intellisense/__init__.pyi +0 -0
  105. {bl_console_utils → _bl_console_utils}/py.typed +0 -0
  106. {bl_i18n_utils → _bl_i18n_utils}/bl_extract_messages/__init__.pyi +0 -0
  107. {bl_i18n_utils → _bl_i18n_utils}/merge_po/__init__.pyi +0 -0
  108. {bl_i18n_utils → _bl_i18n_utils}/py.typed +0 -0
  109. {bl_i18n_utils → _bl_i18n_utils}/utils/__init__.pyi +0 -0
  110. {bl_i18n_utils → _bl_i18n_utils}/utils_cli/__init__.pyi +0 -0
  111. {bl_i18n_utils → _bl_i18n_utils}/utils_languages_menu/__init__.pyi +0 -0
  112. {bl_i18n_utils → _bl_i18n_utils}/utils_rtl/__init__.pyi +0 -0
  113. {bl_previews_utils → _bl_previews_utils}/__init__.pyi +0 -0
  114. {bl_previews_utils → _bl_previews_utils}/bl_previews_render/__init__.pyi +0 -0
  115. {bl_previews_utils → _bl_previews_utils}/py.typed +0 -0
  116. {bl_rna_utils → _bl_rna_utils}/__init__.pyi +0 -0
  117. {bl_rna_utils → _bl_rna_utils}/data_path/__init__.pyi +0 -0
  118. {bl_rna_utils → _bl_rna_utils}/py.typed +0 -0
  119. {bl_text_utils → _bl_text_utils}/__init__.pyi +0 -0
  120. {bl_text_utils → _bl_text_utils}/external_editor/__init__.pyi +0 -0
  121. {bl_text_utils → _bl_text_utils}/py.typed +0 -0
  122. {bl_ui_utils → _bl_ui_utils}/layout/__init__.pyi +0 -0
  123. {bl_ui_utils → _bl_ui_utils}/py.typed +0 -0
  124. {bpy_restrict_state → _bpy_restrict_state}/__init__.pyi +0 -0
  125. {bpy_restrict_state → _bpy_restrict_state}/py.typed +0 -0
  126. {console_python → _console_python}/__init__.pyi +0 -0
  127. {console_python → _console_python}/py.typed +0 -0
  128. {console_shell → _console_shell}/__init__.pyi +0 -0
  129. {console_shell → _console_shell}/py.typed +0 -0
  130. {graphviz_export → _graphviz_export}/__init__.pyi +0 -0
  131. {graphviz_export → _graphviz_export}/py.typed +0 -0
  132. {keyingsets_utils → _keyingsets_utils}/__init__.pyi +0 -0
  133. {keyingsets_utils → _keyingsets_utils}/py.typed +0 -0
  134. {rna_info → _rna_info}/__init__.pyi +0 -0
  135. {rna_info → _rna_info}/py.typed +0 -0
  136. {rna_xml → _rna_xml}/__init__.pyi +0 -0
  137. {rna_xml → _rna_xml}/py.typed +0 -0
  138. {fake_bpy_module_latest-20251002.dist-info → fake_bpy_module_latest-20260113.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
 
@@ -260,12 +272,17 @@ class BMEdgeSeq:
260
272
  def ensure_lookup_table(self) -> None:
261
273
  """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."""
262
274
 
263
- def get(self, verts: collections.abc.Sequence[BMVert], fallback=None) -> BMEdge:
275
+ def get(
276
+ self,
277
+ verts: collections.abc.Sequence[BMVert],
278
+ fallback: typing.Any | None = None,
279
+ ) -> BMEdge:
264
280
  """Return an edge which uses the verts passed.
265
281
 
266
282
  :param verts: Sequence of verts.
267
283
  :type verts: collections.abc.Sequence[BMVert]
268
284
  :param fallback: Return this value if nothing is found.
285
+ :type fallback: typing.Any | None
269
286
  :return: The edge found or None
270
287
  :rtype: BMEdge
271
288
  """
@@ -289,7 +306,7 @@ class BMEdgeSeq:
289
306
  def remove(self, edge: BMEdge) -> None:
290
307
  """Remove an edge.
291
308
 
292
- :param edge:
309
+ :param edge: The edge to remove.
293
310
  :type edge: BMEdge
294
311
  """
295
312
 
@@ -321,13 +338,13 @@ class BMEdgeSeq:
321
338
  """
322
339
 
323
340
  @typing.overload
324
- def __getitem__(self, key: slice) -> list[BMEdge, ...]:
341
+ def __getitem__(self, key: slice) -> list[BMEdge]:
325
342
  """
326
343
 
327
344
  :param key:
328
345
  :type key: slice
329
346
  :return:
330
- :rtype: list[BMEdge, ...]
347
+ :rtype: list[BMEdge]
331
348
  """
332
349
 
333
350
  def __iter__(self) -> BMIter[BMEdge]:
@@ -397,13 +414,13 @@ class BMElemSeq[_GenericType1]:
397
414
  """
398
415
 
399
416
  @typing.overload
400
- def __getitem__(self, key: slice) -> list[_GenericType1, ...]:
417
+ def __getitem__(self, key: slice) -> list[_GenericType1]:
401
418
  """
402
419
 
403
420
  :param key:
404
421
  :type key: slice
405
422
  :return:
406
- :rtype: list[_GenericType1, ...]
423
+ :rtype: list[_GenericType1]
407
424
  """
408
425
 
409
426
  def __iter__(self) -> BMIter[_GenericType1]:
@@ -477,6 +494,12 @@ class BMFace:
477
494
  :type: bool
478
495
  """
479
496
 
497
+ uv_select: bool
498
+ """ UV selected state of this element.
499
+
500
+ :type: bool
501
+ """
502
+
480
503
  verts: typing.Any
481
504
  """ Verts of this face, (read-only)."""
482
505
 
@@ -597,6 +620,13 @@ class BMFace:
597
620
  :type select: bool
598
621
  """
599
622
 
623
+ def uv_select_set(self, select: bool) -> None:
624
+ """Select the face.
625
+
626
+ :param select: Select or de-select.
627
+ :type select: bool
628
+ """
629
+
600
630
  def __getitem__[_GenericType1](
601
631
  self, key: BMLayerItem[_GenericType1]
602
632
  ) -> _GenericType1:
@@ -642,12 +672,17 @@ class BMFaceSeq:
642
672
  def ensure_lookup_table(self) -> None:
643
673
  """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."""
644
674
 
645
- def get(self, verts: collections.abc.Sequence[BMVert], fallback=None) -> BMFace:
675
+ def get(
676
+ self,
677
+ verts: collections.abc.Sequence[BMVert],
678
+ fallback: typing.Any | None = None,
679
+ ) -> BMFace:
646
680
  """Return a face which uses the verts passed.
647
681
 
648
682
  :param verts: Sequence of verts.
649
683
  :type verts: collections.abc.Sequence[BMVert]
650
684
  :param fallback: Return this value if nothing is found.
685
+ :type fallback: typing.Any | None
651
686
  :return: The face found or None
652
687
  :rtype: BMFace
653
688
  """
@@ -671,7 +706,7 @@ class BMFaceSeq:
671
706
  def remove(self, face: BMFace) -> None:
672
707
  """Remove a face.
673
708
 
674
- :param face:
709
+ :param face: The face to remove.
675
710
  :type face: BMFace
676
711
  """
677
712
 
@@ -703,13 +738,13 @@ class BMFaceSeq:
703
738
  """
704
739
 
705
740
  @typing.overload
706
- def __getitem__(self, key: slice) -> list[BMFace, ...]:
741
+ def __getitem__(self, key: slice) -> list[BMFace]:
707
742
  """
708
743
 
709
744
  :param key:
710
745
  :type key: slice
711
746
  :return:
712
- :rtype: list[BMFace, ...]
747
+ :rtype: list[BMFace]
713
748
  """
714
749
 
715
750
  def __iter__(self) -> BMIter[BMFace]:
@@ -940,7 +975,7 @@ class BMLayerItem[_GenericType1]:
940
975
  """
941
976
 
942
977
  def copy_from(self, other: typing_extensions.Self) -> None:
943
- """Return a copy of the layer
978
+ """Copy data from another layer.
944
979
 
945
980
  :param other: Another layer to copy from.
946
981
  :type other: typing_extensions.Self
@@ -1012,6 +1047,18 @@ class BMLoop:
1012
1047
  :type: bool
1013
1048
  """
1014
1049
 
1050
+ uv_select_edge: bool
1051
+ """ UV selected state of this element.
1052
+
1053
+ :type: bool
1054
+ """
1055
+
1056
+ uv_select_vert: bool
1057
+ """ UV selected state of this element.
1058
+
1059
+ :type: bool
1060
+ """
1061
+
1015
1062
  vert: BMVert
1016
1063
  """ The loop's vertex (read-only).
1017
1064
 
@@ -1062,6 +1109,20 @@ class BMLoop:
1062
1109
  :type multires: bool
1063
1110
  """
1064
1111
 
1112
+ def uv_select_edge_set(self, select: bool) -> None:
1113
+ """Set the UV edge selection state.
1114
+
1115
+ :param select: Select or de-select.
1116
+ :type select: bool
1117
+ """
1118
+
1119
+ def uv_select_vert_set(self, select: bool) -> None:
1120
+ """Select the UV vertex.
1121
+
1122
+ :param select: Select or de-select.
1123
+ :type select: bool
1124
+ """
1125
+
1065
1126
  def __getitem__[_GenericType1](
1066
1127
  self, key: BMLayerItem[_GenericType1]
1067
1128
  ) -> _GenericType1:
@@ -1109,13 +1170,13 @@ class BMLoopSeq:
1109
1170
  """
1110
1171
 
1111
1172
  @typing.overload
1112
- def __getitem__(self, key: slice) -> list[BMLoop, ...]:
1173
+ def __getitem__(self, key: slice) -> list[BMLoop]:
1113
1174
  """
1114
1175
 
1115
1176
  :param key:
1116
1177
  :type key: slice
1117
1178
  :return:
1118
- :rtype: list[BMLoop, ...]
1179
+ :rtype: list[BMLoop]
1119
1180
  """
1120
1181
 
1121
1182
  def __iter__(self) -> BMIter[BMLoop]:
@@ -1139,18 +1200,6 @@ class BMLoopUV:
1139
1200
  :type: bool
1140
1201
  """
1141
1202
 
1142
- select: bool
1143
- """ UV select state.
1144
-
1145
- :type: bool
1146
- """
1147
-
1148
- select_edge: bool
1149
- """ UV edge select state.
1150
-
1151
- :type: bool
1152
- """
1153
-
1154
1203
  uv: mathutils.Vector
1155
1204
  """ Loops UV (as a 2D Vector).
1156
1205
 
@@ -1269,7 +1318,7 @@ class BMVert:
1269
1318
 
1270
1319
  :param vert_pair: The verts between which to interpolate data from.
1271
1320
  :type vert_pair: collections.abc.Sequence[BMVert]
1272
- :param fac:
1321
+ :param fac: The interpolation factor.
1273
1322
  :type fac: float
1274
1323
  """
1275
1324
 
@@ -1355,7 +1404,7 @@ class BMVertSeq:
1355
1404
  def remove(self, vert: BMVert) -> None:
1356
1405
  """Remove a vert.
1357
1406
 
1358
- :param vert:
1407
+ :param vert: The vert to remove.
1359
1408
  :type vert: BMVert
1360
1409
  """
1361
1410
 
@@ -1387,13 +1436,13 @@ class BMVertSeq:
1387
1436
  """
1388
1437
 
1389
1438
  @typing.overload
1390
- def __getitem__(self, key: slice) -> list[BMVert, ...]:
1439
+ def __getitem__(self, key: slice) -> list[BMVert]:
1391
1440
  """
1392
1441
 
1393
1442
  :param key:
1394
1443
  :type key: slice
1395
1444
  :return:
1396
- :rtype: list[BMVert, ...]
1445
+ :rtype: list[BMVert]
1397
1446
  """
1398
1447
 
1399
1448
  def __iter__(self) -> BMIter[BMVert]:
@@ -1452,6 +1501,12 @@ class BMesh:
1452
1501
  select_mode: typing.Any
1453
1502
  """ The selection mode, cannot be assigned an empty set."""
1454
1503
 
1504
+ uv_select_sync_valid: bool
1505
+ """ 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.
1506
+
1507
+ :type: bool
1508
+ """
1509
+
1455
1510
  verts: BMVertSeq
1456
1511
  """ This meshes vert sequence (read-only).
1457
1512
 
@@ -1500,9 +1555,9 @@ class BMesh:
1500
1555
 
1501
1556
  :param mesh: The mesh data to load.
1502
1557
  :type mesh: bpy.types.Mesh
1503
- :param face_normals:
1558
+ :param face_normals: Calculate face normals.
1504
1559
  :type face_normals: bool
1505
- :param vertex_normals:
1560
+ :param vertex_normals: Calculate vertex normals.
1506
1561
  :type vertex_normals: bool
1507
1562
  :param use_shape_key: Use the locations from a shape key.
1508
1563
  :type use_shape_key: bool
@@ -1523,7 +1578,7 @@ class BMesh:
1523
1578
 
1524
1579
  :param object: The object data to load.
1525
1580
  :type object: bpy.types.Object
1526
- :param depsgraph:
1581
+ :param depsgraph: The dependency graph for evaluated data.
1527
1582
  :type depsgraph: bpy.types.Depsgraph
1528
1583
  :param cage: Get the mesh as a deformed cage.
1529
1584
  :type cage: bool
@@ -1543,8 +1598,12 @@ class BMesh:
1543
1598
  :type select: bool
1544
1599
  """
1545
1600
 
1546
- def select_flush_mode(self) -> None:
1547
- """flush selection based on the current mode current `bmesh.types.BMesh.select_mode`."""
1601
+ def select_flush_mode(self, *, flush_down: bool = False) -> None:
1602
+ """Flush selection based on the current mode current `bmesh.types.BMesh.select_mode`.
1603
+
1604
+ :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.
1605
+ :type flush_down: bool
1606
+ """
1548
1607
 
1549
1608
  def to_mesh(self, mesh: bpy.types.Mesh) -> None:
1550
1609
  """Writes this BMesh data into an existing Mesh data-block.
@@ -1562,7 +1621,96 @@ class BMesh:
1562
1621
  ) -> None:
1563
1622
  """Transform the mesh (optionally filtering flagged data only).
1564
1623
 
1565
- :param matrix: 4x4x transform matrix.
1624
+ :param matrix: 4x4 transform matrix.
1566
1625
  :type matrix: collections.abc.Sequence[collections.abc.Sequence[float]] | mathutils.Matrix
1567
- :param filter: Flag to filter vertices..
1626
+ :param filter: Flag to filter vertices.
1627
+ """
1628
+
1629
+ def uv_select_flush(self, select: bool) -> None:
1630
+ """Flush selection from UV vertices to edges & faces independent of the selection mode.
1631
+
1632
+ :param select: Flush selection or de-selected elements.
1633
+ :type select: bool
1634
+ """
1635
+
1636
+ def uv_select_flush_mode(self, *, flush_down: bool = False) -> None:
1637
+ """Flush selection based on the current mode current `BMesh.select_mode`.
1638
+
1639
+ :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.
1640
+ :type flush_down: bool
1641
+ """
1642
+
1643
+ def uv_select_flush_shared(self, select: bool) -> None:
1644
+ """Flush selection from UV vertices to contiguous UVs independent of the selection mode.
1645
+
1646
+ :param select: Flush selection or de-selected elements.
1647
+ :type select: bool
1648
+ """
1649
+
1650
+ def uv_select_foreach_set(
1651
+ self,
1652
+ select: bool,
1653
+ /,
1654
+ *,
1655
+ loop_verts: collections.abc.Iterable[BMLoop] = (),
1656
+ loop_edges: collections.abc.Iterable[BMLoop] = (),
1657
+ faces: collections.abc.Iterable[BMFace] = (),
1658
+ sticky_select_mode: typing.Literal[
1659
+ "SHARED_LOCATION", "DISABLED", "SHARED_VERTEX"
1660
+ ] = "SHARED_LOCATION",
1661
+ ) -> None:
1662
+ """Set the UV selection state for loop-vertices, loop-edges & faces.This is a close equivalent to selecting in the UV editor.
1663
+
1664
+ :param select: The selection state to set.
1665
+ :type select: bool
1666
+ :param loop_verts: Loop verts to operate on.
1667
+ :type loop_verts: collections.abc.Iterable[BMLoop]
1668
+ :param loop_edges: Loop edges to operate on.
1669
+ :type loop_edges: collections.abc.Iterable[BMLoop]
1670
+ :param faces: Faces to operate on.
1671
+ :type faces: collections.abc.Iterable[BMFace]
1672
+ :param sticky_select_mode: See UV_STICKY_SELECT_MODE_REF.
1673
+ :type sticky_select_mode: typing.Literal['SHARED_LOCATION', 'DISABLED', 'SHARED_VERTEX']
1674
+ """
1675
+
1676
+ def uv_select_foreach_set_from_mesh(
1677
+ self,
1678
+ select: bool,
1679
+ /,
1680
+ *,
1681
+ verts: collections.abc.Iterable[BMVert] = (),
1682
+ edges: collections.abc.Iterable[BMEdge] = (),
1683
+ faces: collections.abc.Iterable[BMFace] = (),
1684
+ sticky_select_mode: typing.Literal[
1685
+ "SHARED_LOCATION", "DISABLED", "SHARED_VERTEX"
1686
+ ] = "SHARED_LOCATION",
1687
+ ) -> None:
1688
+ """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.
1689
+
1690
+ :param select: The selection state to set.
1691
+ :type select: bool
1692
+ :param verts: Verts to operate on.
1693
+ :type verts: collections.abc.Iterable[BMVert]
1694
+ :param edges: Edges to operate on.
1695
+ :type edges: collections.abc.Iterable[BMEdge]
1696
+ :param faces: Faces to operate on.
1697
+ :type faces: collections.abc.Iterable[BMFace]
1698
+ :param sticky_select_mode: See UV_STICKY_SELECT_MODE_REF.
1699
+ :type sticky_select_mode: typing.Literal['SHARED_LOCATION', 'DISABLED', 'SHARED_VERTEX']
1700
+ """
1701
+
1702
+ def uv_select_sync_from_mesh(
1703
+ self,
1704
+ *,
1705
+ sticky_select_mode: typing.Literal[
1706
+ "SHARED_LOCATION", "DISABLED", "SHARED_VERTEX"
1707
+ ] = "SHARED_LOCATION",
1708
+ ) -> None:
1709
+ """Sync selection from mesh to UVs.
1710
+
1711
+ :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.
1712
+ :type sticky_select_mode: typing.Literal['SHARED_LOCATION', 'DISABLED', 'SHARED_VERTEX']
1568
1713
  """
1714
+
1715
+ def uv_select_sync_to_mesh(self) -> None:
1716
+ """Sync selection from UVs to the mesh."""
bmesh/utils/__init__.pyi CHANGED
@@ -39,11 +39,13 @@ def edge_split(
39
39
  def face_flip(faces) -> None:
40
40
  """Flip the faces direction."""
41
41
 
42
- def face_join(faces: bmesh.types.BMFace, remove: bool = True) -> bmesh.types.BMFace:
42
+ def face_join(
43
+ faces: collections.abc.Sequence[bmesh.types.BMFace], remove: bool = True
44
+ ) -> bmesh.types.BMFace:
43
45
  """Joins a sequence of faces.
44
46
 
45
47
  :param faces: Sequence of faces.
46
- :type faces: bmesh.types.BMFace
48
+ :type faces: collections.abc.Sequence[bmesh.types.BMFace]
47
49
  :param remove: Remove the edges and vertices between the faces.
48
50
  :type remove: bool
49
51
  :return: The newly created face or None on failure.
@@ -82,7 +84,7 @@ def face_split_edgenet(
82
84
  ) -> tuple[bmesh.types.BMFace, ...]:
83
85
  """Splits a face into any number of regions defined by an edgenet.
84
86
 
85
- :param face: The face to split.The face to split.
87
+ :param face: The face to split.
86
88
  :type face: bmesh.types.BMFace
87
89
  :param edgenet: Sequence of edges.
88
90
  :type edgenet: collections.abc.Sequence[bmesh.types.BMEdge]
@@ -112,6 +114,21 @@ def loop_separate(loop: bmesh.types.BMLoop) -> bmesh.types.BMVert:
112
114
  :rtype: bmesh.types.BMVert
113
115
  """
114
116
 
117
+ def uv_select_check(
118
+ bm, /, *, sync: bool = True, flush: bool = False, contiguous: bool = False
119
+ ) -> None | dict[str, int]:
120
+ """Check UV selection state for consistency issues.
121
+
122
+ :param sync: Check the data is properly synchronized between UVs and the underlying mesh. Failure to synchronize with the mesh selection may cause tools not to behave properly.
123
+ :type sync: bool
124
+ :param flush: Check the selection has been properly flushed between elements (based on the current `BMesh.select_mode`).
125
+ :type flush: bool
126
+ :param contiguous: Check connected UVs and edges have a matching selection state.
127
+ :type contiguous: bool
128
+ :return: An error dictionary or None when there are no errors found.
129
+ :rtype: None | dict[str, int]
130
+ """
131
+
115
132
  def vert_collapse_edge(
116
133
  vert: bmesh.types.BMVert, edge: bmesh.types.BMEdge
117
134
  ) -> bmesh.types.BMEdge:
@@ -152,14 +169,14 @@ def vert_dissolve(vert: bmesh.types.BMVert) -> bool:
152
169
  """
153
170
 
154
171
  def vert_separate(
155
- vert: bmesh.types.BMVert, edges: bmesh.types.BMEdge
172
+ vert: bmesh.types.BMVert, edges: collections.abc.Sequence[bmesh.types.BMEdge]
156
173
  ) -> tuple[bmesh.types.BMVert, ...]:
157
174
  """Separate this vertex at every edge.
158
175
 
159
176
  :param vert: The vert to be separated.
160
177
  :type vert: bmesh.types.BMVert
161
178
  :param edges: The edges to separated.
162
- :type edges: bmesh.types.BMEdge
179
+ :type edges: collections.abc.Sequence[bmesh.types.BMEdge]
163
180
  :return: The newly separated verts (including the vertex passed).
164
181
  :rtype: tuple[bmesh.types.BMVert, ...]
165
182
  """