fake-bpy-module 20240803__py3-none-any.whl → 20240804__py3-none-any.whl

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

Potentially problematic release.


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

Files changed (72) hide show
  1. aud/__init__.pyi +77 -77
  2. bmesh/ops/__init__.pyi +54 -36
  3. bmesh/types/__init__.pyi +24 -24
  4. bpy/ops/action/__init__.pyi +55 -32
  5. bpy/ops/anim/__init__.pyi +22 -22
  6. bpy/ops/armature/__init__.pyi +47 -20
  7. bpy/ops/asset/__init__.pyi +5 -2
  8. bpy/ops/boid/__init__.pyi +12 -2
  9. bpy/ops/brush/__init__.pyi +18 -12
  10. bpy/ops/buttons/__init__.pyi +10 -4
  11. bpy/ops/cachefile/__init__.pyi +12 -6
  12. bpy/ops/clip/__init__.pyi +54 -38
  13. bpy/ops/console/__init__.pyi +17 -6
  14. bpy/ops/constraint/__init__.pyi +28 -28
  15. bpy/ops/curve/__init__.pyi +72 -34
  16. bpy/ops/curves/__init__.pyi +16 -16
  17. bpy/ops/dpaint/__init__.pyi +4 -4
  18. bpy/ops/ed/__init__.pyi +5 -2
  19. bpy/ops/export_anim/__init__.pyi +3 -2
  20. bpy/ops/export_scene/__init__.pyi +55 -45
  21. bpy/ops/file/__init__.pyi +40 -16
  22. bpy/ops/font/__init__.pyi +59 -16
  23. bpy/ops/geometry/__init__.pyi +55 -20
  24. bpy/ops/gpencil/__init__.pyi +155 -122
  25. bpy/ops/graph/__init__.pyi +131 -52
  26. bpy/ops/grease_pencil/__init__.pyi +78 -58
  27. bpy/ops/image/__init__.pyi +77 -54
  28. bpy/ops/import_anim/__init__.pyi +11 -8
  29. bpy/ops/import_scene/__init__.pyi +20 -18
  30. bpy/ops/info/__init__.pyi +4 -4
  31. bpy/ops/lattice/__init__.pyi +8 -8
  32. bpy/ops/marker/__init__.pyi +6 -6
  33. bpy/ops/mask/__init__.pyi +13 -12
  34. bpy/ops/mball/__init__.pyi +6 -6
  35. bpy/ops/mesh/__init__.pyi +290 -150
  36. bpy/ops/nla/__init__.pyi +28 -20
  37. bpy/ops/node/__init__.pyi +43 -32
  38. bpy/ops/object/__init__.pyi +651 -210
  39. bpy/ops/outliner/__init__.pyi +113 -32
  40. bpy/ops/paint/__init__.pyi +65 -56
  41. bpy/ops/palette/__init__.pyi +4 -4
  42. bpy/ops/particle/__init__.pyi +14 -14
  43. bpy/ops/pose/__init__.pyi +121 -44
  44. bpy/ops/preferences/__init__.pyi +9 -6
  45. bpy/ops/render/__init__.pyi +3 -2
  46. bpy/ops/rigidbody/__init__.pyi +45 -14
  47. bpy/ops/scene/__init__.pyi +69 -22
  48. bpy/ops/screen/__init__.pyi +78 -16
  49. bpy/ops/sculpt/__init__.pyi +131 -74
  50. bpy/ops/sculpt_curves/__init__.pyi +2 -2
  51. bpy/ops/sequencer/__init__.pyi +156 -60
  52. bpy/ops/sound/__init__.pyi +40 -16
  53. bpy/ops/surface/__init__.pyi +12 -12
  54. bpy/ops/text/__init__.pyi +65 -20
  55. bpy/ops/texture/__init__.pyi +2 -2
  56. bpy/ops/transform/__init__.pyi +344 -72
  57. bpy/ops/ui/__init__.pyi +9 -6
  58. bpy/ops/uilist/__init__.pyi +2 -2
  59. bpy/ops/uv/__init__.pyi +90 -66
  60. bpy/ops/view3d/__init__.pyi +36 -30
  61. bpy/ops/wm/__init__.pyi +443 -156
  62. bpy/types/__init__.pyi +28064 -2857
  63. {fake_bpy_module-20240803.dist-info → fake_bpy_module-20240804.dist-info}/METADATA +1 -1
  64. {fake_bpy_module-20240803.dist-info → fake_bpy_module-20240804.dist-info}/RECORD +72 -72
  65. freestyle/chainingiterators/__init__.pyi +4 -4
  66. freestyle/types/__init__.pyi +76 -63
  67. idprop/types/__init__.pyi +2 -2
  68. imbuf/types/__init__.pyi +2 -2
  69. mathutils/__init__.pyi +1004 -970
  70. mathutils/bvhtree/__init__.pyi +2 -2
  71. {fake_bpy_module-20240803.dist-info → fake_bpy_module-20240804.dist-info}/WHEEL +0 -0
  72. {fake_bpy_module-20240803.dist-info → fake_bpy_module-20240804.dist-info}/top_level.txt +0 -0
bpy/ops/mesh/__init__.pyi CHANGED
@@ -49,7 +49,8 @@ def average_normals(
49
49
  execution_context: int | str | None = None,
50
50
  undo: bool | None = None,
51
51
  *,
52
- average_type: str | None = "CUSTOM_NORMAL",
52
+ average_type: typing.Literal["CUSTOM_NORMAL", "FACE_AREA", "CORNER_ANGLE"]
53
+ | None = "CUSTOM_NORMAL",
53
54
  weight: int | None = 50,
54
55
  threshold: float | None = 0.01,
55
56
  ):
@@ -68,7 +69,7 @@ def average_normals(
68
69
 
69
70
  CORNER_ANGLE
70
71
  Corner Angle -- Set all vertex normals by corner angle.
71
- :type average_type: str | None
72
+ :type average_type: typing.Literal['CUSTOM_NORMAL','FACE_AREA','CORNER_ANGLE'] | None
72
73
  :param weight: Weight, Weight applied per face
73
74
  :type weight: int | None
74
75
  :param threshold: Threshold, Threshold value for different weights to be considered equal
@@ -100,24 +101,26 @@ def bevel(
100
101
  execution_context: int | str | None = None,
101
102
  undo: bool | None = None,
102
103
  *,
103
- offset_type: str | None = "OFFSET",
104
+ offset_type: typing.Literal["OFFSET", "WIDTH", "DEPTH", "PERCENT", "ABSOLUTE"]
105
+ | None = "OFFSET",
104
106
  offset: float | None = 0.0,
105
- profile_type: str | None = "SUPERELLIPSE",
107
+ profile_type: typing.Literal["SUPERELLIPSE", "CUSTOM"] | None = "SUPERELLIPSE",
106
108
  offset_pct: float | None = 0.0,
107
109
  segments: int | None = 1,
108
110
  profile: float | None = 0.5,
109
- affect: str | None = "EDGES",
111
+ affect: typing.Literal["VERTICES", "EDGES"] | None = "EDGES",
110
112
  clamp_overlap: bool | None = False,
111
113
  loop_slide: bool | None = True,
112
114
  mark_seam: bool | None = False,
113
115
  mark_sharp: bool | None = False,
114
116
  material: int | None = -1,
115
117
  harden_normals: bool | None = False,
116
- face_strength_mode: str | None = "NONE",
117
- miter_outer: str | None = "SHARP",
118
- miter_inner: str | None = "SHARP",
118
+ face_strength_mode: typing.Literal["NONE", "NEW", "AFFECTED", "ALL"]
119
+ | None = "NONE",
120
+ miter_outer: typing.Literal["SHARP", "PATCH", "ARC"] | None = "SHARP",
121
+ miter_inner: typing.Literal["SHARP", "ARC"] | None = "SHARP",
119
122
  spread: float | None = 0.1,
120
- vmesh_method: str | None = "ADJ",
123
+ vmesh_method: typing.Literal["ADJ", "CUTOFF"] | None = "ADJ",
121
124
  release_confirm: bool | None = False,
122
125
  ):
123
126
  """Cut into selected items at an angle to create bevel or chamfer
@@ -141,7 +144,7 @@ def bevel(
141
144
 
142
145
  ABSOLUTE
143
146
  Absolute -- Amount is absolute distance along adjacent edge.
144
- :type offset_type: str | None
147
+ :type offset_type: typing.Literal['OFFSET','WIDTH','DEPTH','PERCENT','ABSOLUTE'] | None
145
148
  :param offset: Width, Bevel amount
146
149
  :type offset: float | None
147
150
  :param profile_type: Profile Type, The type of shape used to rebuild a beveled section
@@ -151,7 +154,7 @@ def bevel(
151
154
 
152
155
  CUSTOM
153
156
  Custom -- The profile can be any arbitrary path between its endpoints.
154
- :type profile_type: str | None
157
+ :type profile_type: typing.Literal['SUPERELLIPSE','CUSTOM'] | None
155
158
  :param offset_pct: Width Percent, Bevel amount for percentage method
156
159
  :type offset_pct: float | None
157
160
  :param segments: Segments, Segments for curved edge
@@ -165,7 +168,7 @@ def bevel(
165
168
 
166
169
  EDGES
167
170
  Edges -- Affect only edges.
168
- :type affect: str | None
171
+ :type affect: typing.Literal['VERTICES','EDGES'] | None
169
172
  :param clamp_overlap: Clamp Overlap, Do not allow beveled edges/vertices to overlap each other
170
173
  :type clamp_overlap: bool | None
171
174
  :param loop_slide: Loop Slide, Prefer sliding along edges to even widths
@@ -191,7 +194,7 @@ def bevel(
191
194
 
192
195
  ALL
193
196
  All -- Set face strength on all faces.
194
- :type face_strength_mode: str | None
197
+ :type face_strength_mode: typing.Literal['NONE','NEW','AFFECTED','ALL'] | None
195
198
  :param miter_outer: Outer Miter, Pattern to use for outside of miters
196
199
 
197
200
  SHARP
@@ -202,7 +205,7 @@ def bevel(
202
205
 
203
206
  ARC
204
207
  Arc -- Outside of miter is arc.
205
- :type miter_outer: str | None
208
+ :type miter_outer: typing.Literal['SHARP','PATCH','ARC'] | None
206
209
  :param miter_inner: Inner Miter, Pattern to use for inside of miters
207
210
 
208
211
  SHARP
@@ -210,7 +213,7 @@ def bevel(
210
213
 
211
214
  ARC
212
215
  Arc -- Inside of miter is arc.
213
- :type miter_inner: str | None
216
+ :type miter_inner: typing.Literal['SHARP','ARC'] | None
214
217
  :param spread: Spread, Amount to spread arcs for arc inner miters
215
218
  :type spread: float | None
216
219
  :param vmesh_method: Vertex Mesh Method, The method to use to create meshes at intersections
@@ -220,7 +223,7 @@ def bevel(
220
223
 
221
224
  CUTOFF
222
225
  Cutoff -- A cutoff at each profile's end before the intersection.
223
- :type vmesh_method: str | None
226
+ :type vmesh_method: typing.Literal['ADJ','CUTOFF'] | None
224
227
  :param release_confirm: Confirm on Release
225
228
  :type release_confirm: bool | None
226
229
  """
@@ -315,15 +318,18 @@ def bridge_edge_loops(
315
318
  execution_context: int | str | None = None,
316
319
  undo: bool | None = None,
317
320
  *,
318
- type: str | None = "SINGLE",
321
+ type: typing.Literal["SINGLE", "CLOSED", "PAIRS"] | None = "SINGLE",
319
322
  use_merge: bool | None = False,
320
323
  merge_factor: float | None = 0.5,
321
324
  twist_offset: int | None = 0,
322
325
  number_cuts: int | None = 0,
323
- interpolation: str | None = "PATH",
326
+ interpolation: typing.Literal["LINEAR", "PATH", "SURFACE"] | None = "PATH",
324
327
  smoothness: float | None = 1.0,
325
328
  profile_shape_factor: float | None = 0.0,
326
- profile_shape: str | None = "SMOOTH",
329
+ profile_shape: typing.Literal[
330
+ "SMOOTH", "SPHERE", "ROOT", "INVERSE_SQUARE", "SHARP", "LINEAR"
331
+ ]
332
+ | None = "SMOOTH",
327
333
  ):
328
334
  """Create a bridge of faces between two or more selected edge loops
329
335
 
@@ -331,7 +337,7 @@ def bridge_edge_loops(
331
337
  :type execution_context: int | str | None
332
338
  :type undo: bool | None
333
339
  :param type: Connect Loops, Method of bridging multiple loops
334
- :type type: str | None
340
+ :type type: typing.Literal['SINGLE','CLOSED','PAIRS'] | None
335
341
  :param use_merge: Merge, Merge rather than creating faces
336
342
  :type use_merge: bool | None
337
343
  :param merge_factor: Merge Factor
@@ -341,13 +347,13 @@ def bridge_edge_loops(
341
347
  :param number_cuts: Number of Cuts
342
348
  :type number_cuts: int | None
343
349
  :param interpolation: Interpolation, Interpolation method
344
- :type interpolation: str | None
350
+ :type interpolation: typing.Literal['LINEAR','PATH','SURFACE'] | None
345
351
  :param smoothness: Smoothness, Smoothness factor
346
352
  :type smoothness: float | None
347
353
  :param profile_shape_factor: Profile Factor, How much intermediary new edges are shrunk/expanded
348
354
  :type profile_shape_factor: float | None
349
355
  :param profile_shape: Profile Shape, Shape of the profile
350
- :type profile_shape: str | None
356
+ :type profile_shape: typing.Literal['SMOOTH', 'SPHERE', 'ROOT', 'INVERSE_SQUARE', 'SHARP', 'LINEAR'] | None
351
357
  """
352
358
 
353
359
  ...
@@ -512,7 +518,7 @@ def decimate(
512
518
  vertex_group_factor: float | None = 1.0,
513
519
  invert_vertex_group: bool | None = False,
514
520
  use_symmetry: bool | None = False,
515
- symmetry_axis: str | None = "Y",
521
+ symmetry_axis: typing.Literal["X", "Y", "Z"] | None = "Y",
516
522
  ):
517
523
  """Simplify geometry by collapsing edges
518
524
 
@@ -530,7 +536,7 @@ def decimate(
530
536
  :param use_symmetry: Symmetry, Maintain symmetry on an axis
531
537
  :type use_symmetry: bool | None
532
538
  :param symmetry_axis: Axis, Axis of symmetry
533
- :type symmetry_axis: str | None
539
+ :type symmetry_axis: typing.Literal['X', 'Y', 'Z'] | None
534
540
  """
535
541
 
536
542
  ...
@@ -540,7 +546,8 @@ def delete(
540
546
  execution_context: int | str | None = None,
541
547
  undo: bool | None = None,
542
548
  *,
543
- type: str | None = "VERT",
549
+ type: typing.Literal["VERT", "EDGE", "FACE", "EDGE_FACE", "ONLY_FACE"]
550
+ | None = "VERT",
544
551
  ):
545
552
  """Delete selected vertices, edges or faces
546
553
 
@@ -548,7 +555,7 @@ def delete(
548
555
  :type execution_context: int | str | None
549
556
  :type undo: bool | None
550
557
  :param type: Type, Method used for deleting mesh data
551
- :type type: str | None
558
+ :type type: typing.Literal['VERT','EDGE','FACE','EDGE_FACE','ONLY_FACE'] | None
552
559
  """
553
560
 
554
561
  ...
@@ -659,7 +666,9 @@ def dissolve_limited(
659
666
  *,
660
667
  angle_limit: float | None = 0.0872665,
661
668
  use_dissolve_boundaries: bool | None = False,
662
- delimit: set[str] | None = {"NORMAL"},
669
+ delimit: set[typing.Literal["NORMAL", "MATERIAL", "SEAM", "SHARP", "UV"]] | None = {
670
+ "NORMAL"
671
+ },
663
672
  ):
664
673
  """Dissolve selected edges and vertices, limited by the angle of surrounding geometry
665
674
 
@@ -671,7 +680,7 @@ def dissolve_limited(
671
680
  :param use_dissolve_boundaries: All Boundaries, Dissolve all vertices in between face boundaries
672
681
  :type use_dissolve_boundaries: bool | None
673
682
  :param delimit: Delimit, Delimit dissolve operation
674
- :type delimit: set[str] | None
683
+ :type delimit: set[typing.Literal['NORMAL', 'MATERIAL', 'SEAM', 'SHARP', 'UV']] | None
675
684
  """
676
685
 
677
686
  ...
@@ -829,7 +838,7 @@ def edge_split(
829
838
  execution_context: int | str | None = None,
830
839
  undo: bool | None = None,
831
840
  *,
832
- type: str | None = "EDGE",
841
+ type: typing.Literal["EDGE", "VERT"] | None = "EDGE",
833
842
  ):
834
843
  """Split selected edges so that each neighbor face gets its own copy
835
844
 
@@ -843,7 +852,7 @@ def edge_split(
843
852
 
844
853
  VERT
845
854
  Faces & Edges by Vertices -- Split faces and edges connected to selected vertices.
846
- :type type: str | None
855
+ :type type: typing.Literal['EDGE','VERT'] | None
847
856
  """
848
857
 
849
858
  ...
@@ -1236,7 +1245,7 @@ def faces_mirror_uv(
1236
1245
  execution_context: int | str | None = None,
1237
1246
  undo: bool | None = None,
1238
1247
  *,
1239
- direction: str | None = "POSITIVE",
1248
+ direction: typing.Literal["POSITIVE", "NEGATIVE"] | None = "POSITIVE",
1240
1249
  precision: int | None = 3,
1241
1250
  ):
1242
1251
  """Copy mirror UV coordinates on the X axis based on a mirrored mesh
@@ -1245,7 +1254,7 @@ def faces_mirror_uv(
1245
1254
  :type execution_context: int | str | None
1246
1255
  :type undo: bool | None
1247
1256
  :param direction: Axis Direction
1248
- :type direction: str | None
1257
+ :type direction: typing.Literal['POSITIVE','NEGATIVE'] | None
1249
1258
  :param precision: Precision, Tolerance for finding vertex duplicates
1250
1259
  :type precision: int | None
1251
1260
  """
@@ -1461,10 +1470,10 @@ def intersect(
1461
1470
  execution_context: int | str | None = None,
1462
1471
  undo: bool | None = None,
1463
1472
  *,
1464
- mode: str | None = "SELECT_UNSELECT",
1465
- separate_mode: str | None = "CUT",
1473
+ mode: typing.Literal["SELECT", "SELECT_UNSELECT"] | None = "SELECT_UNSELECT",
1474
+ separate_mode: typing.Literal["ALL", "CUT", "NONE"] | None = "CUT",
1466
1475
  threshold: float | None = 1e-06,
1467
- solver: str | None = "EXACT",
1476
+ solver: typing.Literal["FAST", "EXACT"] | None = "EXACT",
1468
1477
  ):
1469
1478
  """Cut an intersection into faces
1470
1479
 
@@ -1478,7 +1487,7 @@ def intersect(
1478
1487
 
1479
1488
  SELECT_UNSELECT
1480
1489
  Selected/Unselected -- Intersect selected with unselected faces.
1481
- :type mode: str | None
1490
+ :type mode: typing.Literal['SELECT','SELECT_UNSELECT'] | None
1482
1491
  :param separate_mode: Separate Mode
1483
1492
 
1484
1493
  ALL
@@ -1489,7 +1498,7 @@ def intersect(
1489
1498
 
1490
1499
  NONE
1491
1500
  Merge -- Merge all geometry from the intersection.
1492
- :type separate_mode: str | None
1501
+ :type separate_mode: typing.Literal['ALL','CUT','NONE'] | None
1493
1502
  :param threshold: Merge Threshold
1494
1503
  :type threshold: float | None
1495
1504
  :param solver: Solver, Which Intersect solver to use
@@ -1499,7 +1508,7 @@ def intersect(
1499
1508
 
1500
1509
  EXACT
1501
1510
  Exact -- Exact solver, slower, handles more cases.
1502
- :type solver: str | None
1511
+ :type solver: typing.Literal['FAST','EXACT'] | None
1503
1512
  """
1504
1513
 
1505
1514
  ...
@@ -1509,11 +1518,11 @@ def intersect_boolean(
1509
1518
  execution_context: int | str | None = None,
1510
1519
  undo: bool | None = None,
1511
1520
  *,
1512
- operation: str | None = "DIFFERENCE",
1521
+ operation: typing.Literal["INTERSECT", "UNION", "DIFFERENCE"] | None = "DIFFERENCE",
1513
1522
  use_swap: bool | None = False,
1514
1523
  use_self: bool | None = False,
1515
1524
  threshold: float | None = 1e-06,
1516
- solver: str | None = "EXACT",
1525
+ solver: typing.Literal["FAST", "EXACT"] | None = "EXACT",
1517
1526
  ):
1518
1527
  """Cut solid geometry from selected to unselected
1519
1528
 
@@ -1521,7 +1530,7 @@ def intersect_boolean(
1521
1530
  :type execution_context: int | str | None
1522
1531
  :type undo: bool | None
1523
1532
  :param operation: Boolean Operation, Which boolean operation to apply
1524
- :type operation: str | None
1533
+ :type operation: typing.Literal['INTERSECT','UNION','DIFFERENCE'] | None
1525
1534
  :param use_swap: Swap, Use with difference intersection to swap which side is kept
1526
1535
  :type use_swap: bool | None
1527
1536
  :param use_self: Self Intersection, Do self-union or self-intersection
@@ -1535,7 +1544,7 @@ def intersect_boolean(
1535
1544
 
1536
1545
  EXACT
1537
1546
  Exact -- Exact solver, slower, handles more cases.
1538
- :type solver: str | None
1547
+ :type solver: typing.Literal['FAST','EXACT'] | None
1539
1548
  """
1540
1549
 
1541
1550
  ...
@@ -1566,8 +1575,9 @@ def knife_tool(
1566
1575
  use_occlude_geometry: bool | None = True,
1567
1576
  only_selected: bool | None = False,
1568
1577
  xray: bool | None = True,
1569
- visible_measurements: str | None = "NONE",
1570
- angle_snapping: str | None = "NONE",
1578
+ visible_measurements: typing.Literal["NONE", "BOTH", "DISTANCE", "ANGLE"]
1579
+ | None = "NONE",
1580
+ angle_snapping: typing.Literal["NONE", "SCREEN", "RELATIVE"] | None = "NONE",
1571
1581
  angle_snapping_increment: float | None = 0.523599,
1572
1582
  wait_for_input: bool | None = True,
1573
1583
  ):
@@ -1595,7 +1605,7 @@ def knife_tool(
1595
1605
 
1596
1606
  ANGLE
1597
1607
  Angle -- Show just angle measurements.
1598
- :type visible_measurements: str | None
1608
+ :type visible_measurements: typing.Literal['NONE','BOTH','DISTANCE','ANGLE'] | None
1599
1609
  :param angle_snapping: Angle Snapping, Angle snapping mode
1600
1610
 
1601
1611
  NONE
@@ -1606,7 +1616,7 @@ def knife_tool(
1606
1616
 
1607
1617
  RELATIVE
1608
1618
  Relative -- Angle snapping relative to the previous cut edge.
1609
- :type angle_snapping: str | None
1619
+ :type angle_snapping: typing.Literal['NONE','SCREEN','RELATIVE'] | None
1610
1620
  :param angle_snapping_increment: Angle Snap Increment, The angle snap increment used when in constrained angle mode
1611
1621
  :type angle_snapping_increment: float | None
1612
1622
  :param wait_for_input: Wait for Input
@@ -1685,7 +1695,10 @@ def loopcut(
1685
1695
  *,
1686
1696
  number_cuts: int | None = 1,
1687
1697
  smoothness: float | None = 0.0,
1688
- falloff: str | None = "INVERSE_SQUARE",
1698
+ falloff: typing.Literal[
1699
+ "SMOOTH", "SPHERE", "ROOT", "INVERSE_SQUARE", "SHARP", "LINEAR"
1700
+ ]
1701
+ | None = "INVERSE_SQUARE",
1689
1702
  object_index: int | None = -1,
1690
1703
  edge_index: int | None = -1,
1691
1704
  mesh_select_mode_init: collections.abc.Iterable[bool] | None = (
@@ -1704,7 +1717,7 @@ def loopcut(
1704
1717
  :param smoothness: Smoothness, Smoothness factor
1705
1718
  :type smoothness: float | None
1706
1719
  :param falloff: Falloff, Falloff type of the feather
1707
- :type falloff: str | None
1720
+ :type falloff: typing.Literal['SMOOTH', 'SPHERE', 'ROOT', 'INVERSE_SQUARE', 'SHARP', 'LINEAR'] | None
1708
1721
  :param object_index: Object Index
1709
1722
  :type object_index: int | None
1710
1723
  :param edge_index: Edge Index
@@ -1815,7 +1828,8 @@ def merge(
1815
1828
  execution_context: int | str | None = None,
1816
1829
  undo: bool | None = None,
1817
1830
  *,
1818
- type: str | None = "CENTER",
1831
+ type: typing.Literal["CENTER", "CURSOR", "COLLAPSE", "FIRST", "LAST"]
1832
+ | None = "CENTER",
1819
1833
  uvs: bool | None = False,
1820
1834
  ):
1821
1835
  """Merge selected vertices
@@ -1824,7 +1838,7 @@ def merge(
1824
1838
  :type execution_context: int | str | None
1825
1839
  :type undo: bool | None
1826
1840
  :param type: Type, Merge method to use
1827
- :type type: str | None
1841
+ :type type: typing.Literal['CENTER','CURSOR','COLLAPSE','FIRST','LAST'] | None
1828
1842
  :param uvs: UVs, Move UVs according to merge
1829
1843
  :type uvs: bool | None
1830
1844
  """
@@ -1851,7 +1865,7 @@ def mod_weighted_strength(
1851
1865
  undo: bool | None = None,
1852
1866
  *,
1853
1867
  set: bool | None = False,
1854
- face_strength: str | None = "MEDIUM",
1868
+ face_strength: typing.Literal["WEAK", "MEDIUM", "STRONG"] | None = "MEDIUM",
1855
1869
  ):
1856
1870
  """Set/Get strength of face (used in Weighted Normal modifier)
1857
1871
 
@@ -1861,7 +1875,7 @@ def mod_weighted_strength(
1861
1875
  :param set: Set Value, Set value of faces
1862
1876
  :type set: bool | None
1863
1877
  :param face_strength: Face Strength, Strength to use for assigning or selecting face influence for weighted normal modifier
1864
- :type face_strength: str | None
1878
+ :type face_strength: typing.Literal['WEAK','MEDIUM','STRONG'] | None
1865
1879
  """
1866
1880
 
1867
1881
  ...
@@ -1889,7 +1903,7 @@ def normals_tools(
1889
1903
  execution_context: int | str | None = None,
1890
1904
  undo: bool | None = None,
1891
1905
  *,
1892
- mode: str | None = "COPY",
1906
+ mode: typing.Literal["COPY", "PASTE", "ADD", "MULTIPLY", "RESET"] | None = "COPY",
1893
1907
  absolute: bool | None = False,
1894
1908
  ):
1895
1909
  """Custom normals tools using Normal Vector of UI
@@ -1913,7 +1927,7 @@ def normals_tools(
1913
1927
 
1914
1928
  RESET
1915
1929
  Reset Normal -- Reset the internal clipboard and/or normal of selected element.
1916
- :type mode: str | None
1930
+ :type mode: typing.Literal['COPY','PASTE','ADD','MULTIPLY','RESET'] | None
1917
1931
  :param absolute: Absolute Coordinates, Copy Absolute coordinates of Normal vector
1918
1932
  :type absolute: bool | None
1919
1933
  """
@@ -2018,7 +2032,7 @@ def point_normals(
2018
2032
  execution_context: int | str | None = None,
2019
2033
  undo: bool | None = None,
2020
2034
  *,
2021
- mode: str | None = "COORDINATES",
2035
+ mode: typing.Literal["COORDINATES", "MOUSE"] | None = "COORDINATES",
2022
2036
  invert: bool | None = False,
2023
2037
  align: bool | None = False,
2024
2038
  target_location: collections.abc.Sequence[float] | mathutils.Vector | None = (
@@ -2041,7 +2055,7 @@ def point_normals(
2041
2055
 
2042
2056
  MOUSE
2043
2057
  Mouse -- Follow mouse cursor.
2044
- :type mode: str | None
2058
+ :type mode: typing.Literal['COORDINATES','MOUSE'] | None
2045
2059
  :param invert: Invert, Invert affected normals
2046
2060
  :type invert: bool | None
2047
2061
  :param align: Align, Make all affected normals parallel
@@ -2063,7 +2077,8 @@ def poke(
2063
2077
  *,
2064
2078
  offset: float | None = 0.0,
2065
2079
  use_relative_offset: bool | None = False,
2066
- center_mode: str | None = "MEDIAN_WEIGHTED",
2080
+ center_mode: typing.Literal["MEDIAN_WEIGHTED", "MEDIAN", "BOUNDS"]
2081
+ | None = "MEDIAN_WEIGHTED",
2067
2082
  ):
2068
2083
  """Split a face into a fan
2069
2084
 
@@ -2084,7 +2099,7 @@ def poke(
2084
2099
 
2085
2100
  BOUNDS
2086
2101
  Bounds -- Face bounds center.
2087
- :type center_mode: str | None
2102
+ :type center_mode: typing.Literal['MEDIAN_WEIGHTED','MEDIAN','BOUNDS'] | None
2088
2103
  """
2089
2104
 
2090
2105
  ...
@@ -2096,7 +2111,17 @@ def polybuild_delete_at_cursor(
2096
2111
  *,
2097
2112
  mirror: bool | None = False,
2098
2113
  use_proportional_edit: bool | None = False,
2099
- proportional_edit_falloff: str | None = "SMOOTH",
2114
+ proportional_edit_falloff: typing.Literal[
2115
+ "SMOOTH",
2116
+ "SPHERE",
2117
+ "ROOT",
2118
+ "INVERSE_SQUARE",
2119
+ "SHARP",
2120
+ "LINEAR",
2121
+ "CONSTANT",
2122
+ "RANDOM",
2123
+ ]
2124
+ | None = "SMOOTH",
2100
2125
  proportional_size: float | None = 1.0,
2101
2126
  use_proportional_connected: bool | None = False,
2102
2127
  use_proportional_projected: bool | None = False,
@@ -2113,7 +2138,7 @@ def polybuild_delete_at_cursor(
2113
2138
  :param use_proportional_edit: Proportional Editing
2114
2139
  :type use_proportional_edit: bool | None
2115
2140
  :param proportional_edit_falloff: Proportional Falloff, Falloff type for proportional editing mode
2116
- :type proportional_edit_falloff: str | None
2141
+ :type proportional_edit_falloff: typing.Literal['SMOOTH', 'SPHERE', 'ROOT', 'INVERSE_SQUARE', 'SHARP', 'LINEAR', 'CONSTANT', 'RANDOM'] | None
2117
2142
  :param proportional_size: Proportional Size
2118
2143
  :type proportional_size: float | None
2119
2144
  :param use_proportional_connected: Connected
@@ -2174,7 +2199,17 @@ def polybuild_face_at_cursor(
2174
2199
  create_quads: bool | None = True,
2175
2200
  mirror: bool | None = False,
2176
2201
  use_proportional_edit: bool | None = False,
2177
- proportional_edit_falloff: str | None = "SMOOTH",
2202
+ proportional_edit_falloff: typing.Literal[
2203
+ "SMOOTH",
2204
+ "SPHERE",
2205
+ "ROOT",
2206
+ "INVERSE_SQUARE",
2207
+ "SHARP",
2208
+ "LINEAR",
2209
+ "CONSTANT",
2210
+ "RANDOM",
2211
+ ]
2212
+ | None = "SMOOTH",
2178
2213
  proportional_size: float | None = 1.0,
2179
2214
  use_proportional_connected: bool | None = False,
2180
2215
  use_proportional_projected: bool | None = False,
@@ -2193,7 +2228,7 @@ def polybuild_face_at_cursor(
2193
2228
  :param use_proportional_edit: Proportional Editing
2194
2229
  :type use_proportional_edit: bool | None
2195
2230
  :param proportional_edit_falloff: Proportional Falloff, Falloff type for proportional editing mode
2196
- :type proportional_edit_falloff: str | None
2231
+ :type proportional_edit_falloff: typing.Literal['SMOOTH', 'SPHERE', 'ROOT', 'INVERSE_SQUARE', 'SHARP', 'LINEAR', 'CONSTANT', 'RANDOM'] | None
2197
2232
  :param proportional_size: Proportional Size
2198
2233
  :type proportional_size: float | None
2199
2234
  :param use_proportional_connected: Connected
@@ -2236,7 +2271,17 @@ def polybuild_split_at_cursor(
2236
2271
  *,
2237
2272
  mirror: bool | None = False,
2238
2273
  use_proportional_edit: bool | None = False,
2239
- proportional_edit_falloff: str | None = "SMOOTH",
2274
+ proportional_edit_falloff: typing.Literal[
2275
+ "SMOOTH",
2276
+ "SPHERE",
2277
+ "ROOT",
2278
+ "INVERSE_SQUARE",
2279
+ "SHARP",
2280
+ "LINEAR",
2281
+ "CONSTANT",
2282
+ "RANDOM",
2283
+ ]
2284
+ | None = "SMOOTH",
2240
2285
  proportional_size: float | None = 1.0,
2241
2286
  use_proportional_connected: bool | None = False,
2242
2287
  use_proportional_projected: bool | None = False,
@@ -2253,7 +2298,7 @@ def polybuild_split_at_cursor(
2253
2298
  :param use_proportional_edit: Proportional Editing
2254
2299
  :type use_proportional_edit: bool | None
2255
2300
  :param proportional_edit_falloff: Proportional Falloff, Falloff type for proportional editing mode
2256
- :type proportional_edit_falloff: str | None
2301
+ :type proportional_edit_falloff: typing.Literal['SMOOTH', 'SPHERE', 'ROOT', 'INVERSE_SQUARE', 'SHARP', 'LINEAR', 'CONSTANT', 'RANDOM'] | None
2257
2302
  :param proportional_size: Proportional Size
2258
2303
  :type proportional_size: float | None
2259
2304
  :param use_proportional_connected: Connected
@@ -2296,7 +2341,17 @@ def polybuild_transform_at_cursor(
2296
2341
  *,
2297
2342
  mirror: bool | None = False,
2298
2343
  use_proportional_edit: bool | None = False,
2299
- proportional_edit_falloff: str | None = "SMOOTH",
2344
+ proportional_edit_falloff: typing.Literal[
2345
+ "SMOOTH",
2346
+ "SPHERE",
2347
+ "ROOT",
2348
+ "INVERSE_SQUARE",
2349
+ "SHARP",
2350
+ "LINEAR",
2351
+ "CONSTANT",
2352
+ "RANDOM",
2353
+ ]
2354
+ | None = "SMOOTH",
2300
2355
  proportional_size: float | None = 1.0,
2301
2356
  use_proportional_connected: bool | None = False,
2302
2357
  use_proportional_projected: bool | None = False,
@@ -2313,7 +2368,7 @@ def polybuild_transform_at_cursor(
2313
2368
  :param use_proportional_edit: Proportional Editing
2314
2369
  :type use_proportional_edit: bool | None
2315
2370
  :param proportional_edit_falloff: Proportional Falloff, Falloff type for proportional editing mode
2316
- :type proportional_edit_falloff: str | None
2371
+ :type proportional_edit_falloff: typing.Literal['SMOOTH', 'SPHERE', 'ROOT', 'INVERSE_SQUARE', 'SHARP', 'LINEAR', 'CONSTANT', 'RANDOM'] | None
2317
2372
  :param proportional_size: Proportional Size
2318
2373
  :type proportional_size: float | None
2319
2374
  :param use_proportional_connected: Connected
@@ -2356,10 +2411,10 @@ def primitive_circle_add(
2356
2411
  *,
2357
2412
  vertices: int | None = 32,
2358
2413
  radius: float | None = 1.0,
2359
- fill_type: str | None = "NOTHING",
2414
+ fill_type: typing.Literal["NOTHING", "NGON", "TRIFAN"] | None = "NOTHING",
2360
2415
  calc_uvs: bool | None = True,
2361
2416
  enter_editmode: bool | None = False,
2362
- align: str | None = "WORLD",
2417
+ align: typing.Literal["WORLD", "VIEW", "CURSOR"] | None = "WORLD",
2363
2418
  location: collections.abc.Sequence[float] | mathutils.Vector | None = (
2364
2419
  0.0,
2365
2420
  0.0,
@@ -2391,7 +2446,7 @@ def primitive_circle_add(
2391
2446
 
2392
2447
  TRIFAN
2393
2448
  Triangle Fan -- Use triangle fans.
2394
- :type fill_type: str | None
2449
+ :type fill_type: typing.Literal['NOTHING','NGON','TRIFAN'] | None
2395
2450
  :param calc_uvs: Generate UVs, Generate a default UV map
2396
2451
  :type calc_uvs: bool | None
2397
2452
  :param enter_editmode: Enter Edit Mode, Enter edit mode when adding this object
@@ -2406,7 +2461,7 @@ def primitive_circle_add(
2406
2461
 
2407
2462
  CURSOR
2408
2463
  3D Cursor -- Use the 3D cursor orientation for the new object.
2409
- :type align: str | None
2464
+ :type align: typing.Literal['WORLD','VIEW','CURSOR'] | None
2410
2465
  :param location: Location, Location for the newly added object
2411
2466
  :type location: collections.abc.Sequence[float] | mathutils.Vector | None
2412
2467
  :param rotation: Rotation, Rotation for the newly added object
@@ -2426,10 +2481,10 @@ def primitive_cone_add(
2426
2481
  radius1: float | None = 1.0,
2427
2482
  radius2: float | None = 0.0,
2428
2483
  depth: float | None = 2.0,
2429
- end_fill_type: str | None = "NGON",
2484
+ end_fill_type: typing.Literal["NOTHING", "NGON", "TRIFAN"] | None = "NGON",
2430
2485
  calc_uvs: bool | None = True,
2431
2486
  enter_editmode: bool | None = False,
2432
- align: str | None = "WORLD",
2487
+ align: typing.Literal["WORLD", "VIEW", "CURSOR"] | None = "WORLD",
2433
2488
  location: collections.abc.Sequence[float] | mathutils.Vector | None = (
2434
2489
  0.0,
2435
2490
  0.0,
@@ -2465,7 +2520,7 @@ def primitive_cone_add(
2465
2520
 
2466
2521
  TRIFAN
2467
2522
  Triangle Fan -- Use triangle fans.
2468
- :type end_fill_type: str | None
2523
+ :type end_fill_type: typing.Literal['NOTHING','NGON','TRIFAN'] | None
2469
2524
  :param calc_uvs: Generate UVs, Generate a default UV map
2470
2525
  :type calc_uvs: bool | None
2471
2526
  :param enter_editmode: Enter Edit Mode, Enter edit mode when adding this object
@@ -2480,7 +2535,7 @@ def primitive_cone_add(
2480
2535
 
2481
2536
  CURSOR
2482
2537
  3D Cursor -- Use the 3D cursor orientation for the new object.
2483
- :type align: str | None
2538
+ :type align: typing.Literal['WORLD','VIEW','CURSOR'] | None
2484
2539
  :param location: Location, Location for the newly added object
2485
2540
  :type location: collections.abc.Sequence[float] | mathutils.Vector | None
2486
2541
  :param rotation: Rotation, Rotation for the newly added object
@@ -2499,7 +2554,7 @@ def primitive_cube_add(
2499
2554
  size: float | None = 2.0,
2500
2555
  calc_uvs: bool | None = True,
2501
2556
  enter_editmode: bool | None = False,
2502
- align: str | None = "WORLD",
2557
+ align: typing.Literal["WORLD", "VIEW", "CURSOR"] | None = "WORLD",
2503
2558
  location: collections.abc.Sequence[float] | mathutils.Vector | None = (
2504
2559
  0.0,
2505
2560
  0.0,
@@ -2533,7 +2588,7 @@ def primitive_cube_add(
2533
2588
 
2534
2589
  CURSOR
2535
2590
  3D Cursor -- Use the 3D cursor orientation for the new object.
2536
- :type align: str | None
2591
+ :type align: typing.Literal['WORLD','VIEW','CURSOR'] | None
2537
2592
  :param location: Location, Location for the newly added object
2538
2593
  :type location: collections.abc.Sequence[float] | mathutils.Vector | None
2539
2594
  :param rotation: Rotation, Rotation for the newly added object
@@ -2551,7 +2606,7 @@ def primitive_cube_add_gizmo(
2551
2606
  *,
2552
2607
  calc_uvs: bool | None = True,
2553
2608
  enter_editmode: bool | None = False,
2554
- align: str | None = "WORLD",
2609
+ align: typing.Literal["WORLD", "VIEW", "CURSOR"] | None = "WORLD",
2555
2610
  location: collections.abc.Sequence[float] | mathutils.Vector | None = (
2556
2611
  0.0,
2557
2612
  0.0,
@@ -2591,7 +2646,7 @@ def primitive_cube_add_gizmo(
2591
2646
 
2592
2647
  CURSOR
2593
2648
  3D Cursor -- Use the 3D cursor orientation for the new object.
2594
- :type align: str | None
2649
+ :type align: typing.Literal['WORLD','VIEW','CURSOR'] | None
2595
2650
  :param location: Location, Location for the newly added object
2596
2651
  :type location: collections.abc.Sequence[float] | mathutils.Vector | None
2597
2652
  :param rotation: Rotation, Rotation for the newly added object
@@ -2612,10 +2667,10 @@ def primitive_cylinder_add(
2612
2667
  vertices: int | None = 32,
2613
2668
  radius: float | None = 1.0,
2614
2669
  depth: float | None = 2.0,
2615
- end_fill_type: str | None = "NGON",
2670
+ end_fill_type: typing.Literal["NOTHING", "NGON", "TRIFAN"] | None = "NGON",
2616
2671
  calc_uvs: bool | None = True,
2617
2672
  enter_editmode: bool | None = False,
2618
- align: str | None = "WORLD",
2673
+ align: typing.Literal["WORLD", "VIEW", "CURSOR"] | None = "WORLD",
2619
2674
  location: collections.abc.Sequence[float] | mathutils.Vector | None = (
2620
2675
  0.0,
2621
2676
  0.0,
@@ -2649,7 +2704,7 @@ def primitive_cylinder_add(
2649
2704
 
2650
2705
  TRIFAN
2651
2706
  Triangle Fan -- Use triangle fans.
2652
- :type end_fill_type: str | None
2707
+ :type end_fill_type: typing.Literal['NOTHING','NGON','TRIFAN'] | None
2653
2708
  :param calc_uvs: Generate UVs, Generate a default UV map
2654
2709
  :type calc_uvs: bool | None
2655
2710
  :param enter_editmode: Enter Edit Mode, Enter edit mode when adding this object
@@ -2664,7 +2719,7 @@ def primitive_cylinder_add(
2664
2719
 
2665
2720
  CURSOR
2666
2721
  3D Cursor -- Use the 3D cursor orientation for the new object.
2667
- :type align: str | None
2722
+ :type align: typing.Literal['WORLD','VIEW','CURSOR'] | None
2668
2723
  :param location: Location, Location for the newly added object
2669
2724
  :type location: collections.abc.Sequence[float] | mathutils.Vector | None
2670
2725
  :param rotation: Rotation, Rotation for the newly added object
@@ -2685,7 +2740,7 @@ def primitive_grid_add(
2685
2740
  size: float | None = 2.0,
2686
2741
  calc_uvs: bool | None = True,
2687
2742
  enter_editmode: bool | None = False,
2688
- align: str | None = "WORLD",
2743
+ align: typing.Literal["WORLD", "VIEW", "CURSOR"] | None = "WORLD",
2689
2744
  location: collections.abc.Sequence[float] | mathutils.Vector | None = (
2690
2745
  0.0,
2691
2746
  0.0,
@@ -2723,7 +2778,7 @@ def primitive_grid_add(
2723
2778
 
2724
2779
  CURSOR
2725
2780
  3D Cursor -- Use the 3D cursor orientation for the new object.
2726
- :type align: str | None
2781
+ :type align: typing.Literal['WORLD','VIEW','CURSOR'] | None
2727
2782
  :param location: Location, Location for the newly added object
2728
2783
  :type location: collections.abc.Sequence[float] | mathutils.Vector | None
2729
2784
  :param rotation: Rotation, Rotation for the newly added object
@@ -2743,7 +2798,7 @@ def primitive_ico_sphere_add(
2743
2798
  radius: float | None = 1.0,
2744
2799
  calc_uvs: bool | None = True,
2745
2800
  enter_editmode: bool | None = False,
2746
- align: str | None = "WORLD",
2801
+ align: typing.Literal["WORLD", "VIEW", "CURSOR"] | None = "WORLD",
2747
2802
  location: collections.abc.Sequence[float] | mathutils.Vector | None = (
2748
2803
  0.0,
2749
2804
  0.0,
@@ -2779,7 +2834,7 @@ def primitive_ico_sphere_add(
2779
2834
 
2780
2835
  CURSOR
2781
2836
  3D Cursor -- Use the 3D cursor orientation for the new object.
2782
- :type align: str | None
2837
+ :type align: typing.Literal['WORLD','VIEW','CURSOR'] | None
2783
2838
  :param location: Location, Location for the newly added object
2784
2839
  :type location: collections.abc.Sequence[float] | mathutils.Vector | None
2785
2840
  :param rotation: Rotation, Rotation for the newly added object
@@ -2798,7 +2853,7 @@ def primitive_monkey_add(
2798
2853
  size: float | None = 2.0,
2799
2854
  calc_uvs: bool | None = True,
2800
2855
  enter_editmode: bool | None = False,
2801
- align: str | None = "WORLD",
2856
+ align: typing.Literal["WORLD", "VIEW", "CURSOR"] | None = "WORLD",
2802
2857
  location: collections.abc.Sequence[float] | mathutils.Vector | None = (
2803
2858
  0.0,
2804
2859
  0.0,
@@ -2832,7 +2887,7 @@ def primitive_monkey_add(
2832
2887
 
2833
2888
  CURSOR
2834
2889
  3D Cursor -- Use the 3D cursor orientation for the new object.
2835
- :type align: str | None
2890
+ :type align: typing.Literal['WORLD','VIEW','CURSOR'] | None
2836
2891
  :param location: Location, Location for the newly added object
2837
2892
  :type location: collections.abc.Sequence[float] | mathutils.Vector | None
2838
2893
  :param rotation: Rotation, Rotation for the newly added object
@@ -2851,7 +2906,7 @@ def primitive_plane_add(
2851
2906
  size: float | None = 2.0,
2852
2907
  calc_uvs: bool | None = True,
2853
2908
  enter_editmode: bool | None = False,
2854
- align: str | None = "WORLD",
2909
+ align: typing.Literal["WORLD", "VIEW", "CURSOR"] | None = "WORLD",
2855
2910
  location: collections.abc.Sequence[float] | mathutils.Vector | None = (
2856
2911
  0.0,
2857
2912
  0.0,
@@ -2885,7 +2940,7 @@ def primitive_plane_add(
2885
2940
 
2886
2941
  CURSOR
2887
2942
  3D Cursor -- Use the 3D cursor orientation for the new object.
2888
- :type align: str | None
2943
+ :type align: typing.Literal['WORLD','VIEW','CURSOR'] | None
2889
2944
  :param location: Location, Location for the newly added object
2890
2945
  :type location: collections.abc.Sequence[float] | mathutils.Vector | None
2891
2946
  :param rotation: Rotation, Rotation for the newly added object
@@ -2901,7 +2956,7 @@ def primitive_torus_add(
2901
2956
  execution_context: int | str | None = None,
2902
2957
  undo: bool | None = None,
2903
2958
  *,
2904
- align: str | None = "WORLD",
2959
+ align: typing.Literal["WORLD", "VIEW", "CURSOR"] | None = "WORLD",
2905
2960
  location: collections.abc.Sequence[float] | mathutils.Vector | None = (
2906
2961
  0.0,
2907
2962
  0.0,
@@ -2914,7 +2969,7 @@ def primitive_torus_add(
2914
2969
  ),
2915
2970
  major_segments: int | None = 48,
2916
2971
  minor_segments: int | None = 12,
2917
- mode: str | None = "MAJOR_MINOR",
2972
+ mode: typing.Literal["MAJOR_MINOR", "EXT_INT"] | None = "MAJOR_MINOR",
2918
2973
  major_radius: float | None = 1.0,
2919
2974
  minor_radius: float | None = 0.25,
2920
2975
  abso_major_rad: float | None = 1.25,
@@ -2936,7 +2991,7 @@ def primitive_torus_add(
2936
2991
 
2937
2992
  CURSOR
2938
2993
  3D Cursor -- Use the 3D cursor orientation for the new object.
2939
- :type align: str | None
2994
+ :type align: typing.Literal['WORLD','VIEW','CURSOR'] | None
2940
2995
  :param location: Location
2941
2996
  :type location: collections.abc.Sequence[float] | mathutils.Vector | None
2942
2997
  :param rotation: Rotation
@@ -2952,7 +3007,7 @@ def primitive_torus_add(
2952
3007
 
2953
3008
  EXT_INT
2954
3009
  Exterior/Interior -- Use the exterior/interior radii for torus dimensions.
2955
- :type mode: str | None
3010
+ :type mode: typing.Literal['MAJOR_MINOR','EXT_INT'] | None
2956
3011
  :param major_radius: Major Radius, Radius from the origin to the center of the cross sections
2957
3012
  :type major_radius: float | None
2958
3013
  :param minor_radius: Minor Radius, Radius of the torus' cross section
@@ -2977,7 +3032,7 @@ def primitive_uv_sphere_add(
2977
3032
  radius: float | None = 1.0,
2978
3033
  calc_uvs: bool | None = True,
2979
3034
  enter_editmode: bool | None = False,
2980
- align: str | None = "WORLD",
3035
+ align: typing.Literal["WORLD", "VIEW", "CURSOR"] | None = "WORLD",
2981
3036
  location: collections.abc.Sequence[float] | mathutils.Vector | None = (
2982
3037
  0.0,
2983
3038
  0.0,
@@ -3015,7 +3070,7 @@ def primitive_uv_sphere_add(
3015
3070
 
3016
3071
  CURSOR
3017
3072
  3D Cursor -- Use the 3D cursor orientation for the new object.
3018
- :type align: str | None
3073
+ :type align: typing.Literal['WORLD','VIEW','CURSOR'] | None
3019
3074
  :param location: Location, Location for the newly added object
3020
3075
  :type location: collections.abc.Sequence[float] | mathutils.Vector | None
3021
3076
  :param rotation: Rotation, Rotation for the newly added object
@@ -3031,8 +3086,11 @@ def quads_convert_to_tris(
3031
3086
  execution_context: int | str | None = None,
3032
3087
  undo: bool | None = None,
3033
3088
  *,
3034
- quad_method: str | None = "BEAUTY",
3035
- ngon_method: str | None = "BEAUTY",
3089
+ quad_method: typing.Literal[
3090
+ "BEAUTY", "FIXED", "FIXED_ALTERNATE", "SHORTEST_DIAGONAL", "LONGEST_DIAGONAL"
3091
+ ]
3092
+ | None = "BEAUTY",
3093
+ ngon_method: typing.Literal["BEAUTY", "CLIP"] | None = "BEAUTY",
3036
3094
  ):
3037
3095
  """Triangulate selected faces
3038
3096
 
@@ -3040,9 +3098,9 @@ def quads_convert_to_tris(
3040
3098
  :type execution_context: int | str | None
3041
3099
  :type undo: bool | None
3042
3100
  :param quad_method: Quad Method, Method for splitting the quads into triangles
3043
- :type quad_method: str | None
3101
+ :type quad_method: typing.Literal['BEAUTY', 'FIXED', 'FIXED_ALTERNATE', 'SHORTEST_DIAGONAL', 'LONGEST_DIAGONAL'] | None
3044
3102
  :param ngon_method: N-gon Method, Method for splitting the n-gons into triangles
3045
- :type ngon_method: str | None
3103
+ :type ngon_method: typing.Literal['BEAUTY', 'CLIP'] | None
3046
3104
  """
3047
3105
 
3048
3106
  ...
@@ -3110,7 +3168,17 @@ def rip(
3110
3168
  *,
3111
3169
  mirror: bool | None = False,
3112
3170
  use_proportional_edit: bool | None = False,
3113
- proportional_edit_falloff: str | None = "SMOOTH",
3171
+ proportional_edit_falloff: typing.Literal[
3172
+ "SMOOTH",
3173
+ "SPHERE",
3174
+ "ROOT",
3175
+ "INVERSE_SQUARE",
3176
+ "SHARP",
3177
+ "LINEAR",
3178
+ "CONSTANT",
3179
+ "RANDOM",
3180
+ ]
3181
+ | None = "SMOOTH",
3114
3182
  proportional_size: float | None = 1.0,
3115
3183
  use_proportional_connected: bool | None = False,
3116
3184
  use_proportional_projected: bool | None = False,
@@ -3128,7 +3196,7 @@ def rip(
3128
3196
  :param use_proportional_edit: Proportional Editing
3129
3197
  :type use_proportional_edit: bool | None
3130
3198
  :param proportional_edit_falloff: Proportional Falloff, Falloff type for proportional editing mode
3131
- :type proportional_edit_falloff: str | None
3199
+ :type proportional_edit_falloff: typing.Literal['SMOOTH', 'SPHERE', 'ROOT', 'INVERSE_SQUARE', 'SHARP', 'LINEAR', 'CONSTANT', 'RANDOM'] | None
3132
3200
  :param proportional_size: Proportional Size
3133
3201
  :type proportional_size: float | None
3134
3202
  :param use_proportional_connected: Connected
@@ -3152,7 +3220,17 @@ def rip_edge(
3152
3220
  *,
3153
3221
  mirror: bool | None = False,
3154
3222
  use_proportional_edit: bool | None = False,
3155
- proportional_edit_falloff: str | None = "SMOOTH",
3223
+ proportional_edit_falloff: typing.Literal[
3224
+ "SMOOTH",
3225
+ "SPHERE",
3226
+ "ROOT",
3227
+ "INVERSE_SQUARE",
3228
+ "SHARP",
3229
+ "LINEAR",
3230
+ "CONSTANT",
3231
+ "RANDOM",
3232
+ ]
3233
+ | None = "SMOOTH",
3156
3234
  proportional_size: float | None = 1.0,
3157
3235
  use_proportional_connected: bool | None = False,
3158
3236
  use_proportional_projected: bool | None = False,
@@ -3169,7 +3247,7 @@ def rip_edge(
3169
3247
  :param use_proportional_edit: Proportional Editing
3170
3248
  :type use_proportional_edit: bool | None
3171
3249
  :param proportional_edit_falloff: Proportional Falloff, Falloff type for proportional editing mode
3172
- :type proportional_edit_falloff: str | None
3250
+ :type proportional_edit_falloff: typing.Literal['SMOOTH', 'SPHERE', 'ROOT', 'INVERSE_SQUARE', 'SHARP', 'LINEAR', 'CONSTANT', 'RANDOM'] | None
3173
3251
  :param proportional_size: Proportional Size
3174
3252
  :type proportional_size: float | None
3175
3253
  :param use_proportional_connected: Connected
@@ -3258,7 +3336,7 @@ def select_all(
3258
3336
  execution_context: int | str | None = None,
3259
3337
  undo: bool | None = None,
3260
3338
  *,
3261
- action: str | None = "TOGGLE",
3339
+ action: typing.Literal["TOGGLE", "SELECT", "DESELECT", "INVERT"] | None = "TOGGLE",
3262
3340
  ):
3263
3341
  """(De)select all vertices, edges or faces
3264
3342
 
@@ -3278,7 +3356,7 @@ def select_all(
3278
3356
 
3279
3357
  INVERT
3280
3358
  Invert -- Invert selection of all elements.
3281
- :type action: str | None
3359
+ :type action: typing.Literal['TOGGLE','SELECT','DESELECT','INVERT'] | None
3282
3360
  """
3283
3361
 
3284
3362
  ...
@@ -3288,9 +3366,12 @@ def select_axis(
3288
3366
  execution_context: int | str | None = None,
3289
3367
  undo: bool | None = None,
3290
3368
  *,
3291
- orientation: str | None = "LOCAL",
3292
- sign: str | None = "POS",
3293
- axis: str | None = "X",
3369
+ orientation: typing.Literal[
3370
+ "GLOBAL", "LOCAL", "NORMAL", "GIMBAL", "VIEW", "CURSOR", "PARENT"
3371
+ ]
3372
+ | None = "LOCAL",
3373
+ sign: typing.Literal["POS", "NEG", "ALIGN"] | None = "POS",
3374
+ axis: typing.Literal["X", "Y", "Z"] | None = "X",
3294
3375
  threshold: float | None = 0.0001,
3295
3376
  ):
3296
3377
  """Select all data in the mesh on a single axis
@@ -3299,11 +3380,11 @@ def select_axis(
3299
3380
  :type execution_context: int | str | None
3300
3381
  :type undo: bool | None
3301
3382
  :param orientation: Axis Mode, Axis orientation
3302
- :type orientation: str | None
3383
+ :type orientation: typing.Literal['GLOBAL', 'LOCAL', 'NORMAL', 'GIMBAL', 'VIEW', 'CURSOR', 'PARENT'] | None
3303
3384
  :param sign: Axis Sign, Side to select
3304
- :type sign: str | None
3385
+ :type sign: typing.Literal['POS','NEG','ALIGN'] | None
3305
3386
  :param axis: Axis, Select the axis to compare each vertex on
3306
- :type axis: str | None
3387
+ :type axis: typing.Literal['X', 'Y', 'Z'] | None
3307
3388
  :param threshold: Threshold
3308
3389
  :type threshold: float | None
3309
3390
  """
@@ -3330,7 +3411,7 @@ def select_face_by_sides(
3330
3411
  undo: bool | None = None,
3331
3412
  *,
3332
3413
  number: int | None = 4,
3333
- type: str | None = "EQUAL",
3414
+ type: typing.Literal["LESS", "EQUAL", "GREATER", "NOTEQUAL"] | None = "EQUAL",
3334
3415
  extend: bool | None = True,
3335
3416
  ):
3336
3417
  """Select vertices or faces by the number of face sides
@@ -3341,7 +3422,7 @@ def select_face_by_sides(
3341
3422
  :param number: Number of Vertices
3342
3423
  :type number: int | None
3343
3424
  :param type: Type, Type of comparison to make
3344
- :type type: str | None
3425
+ :type type: typing.Literal['LESS','EQUAL','GREATER','NOTEQUAL'] | None
3345
3426
  :param extend: Extend, Extend the selection
3346
3427
  :type extend: bool | None
3347
3428
  """
@@ -3385,7 +3466,9 @@ def select_linked(
3385
3466
  execution_context: int | str | None = None,
3386
3467
  undo: bool | None = None,
3387
3468
  *,
3388
- delimit: set[str] | None = {"SEAM"},
3469
+ delimit: set[typing.Literal["NORMAL", "MATERIAL", "SEAM", "SHARP", "UV"]] | None = {
3470
+ "SEAM"
3471
+ },
3389
3472
  ):
3390
3473
  """Select all vertices connected to the current selection
3391
3474
 
@@ -3393,7 +3476,7 @@ def select_linked(
3393
3476
  :type execution_context: int | str | None
3394
3477
  :type undo: bool | None
3395
3478
  :param delimit: Delimit, Delimit selected region
3396
- :type delimit: set[str] | None
3479
+ :type delimit: set[typing.Literal['NORMAL', 'MATERIAL', 'SEAM', 'SHARP', 'UV']] | None
3397
3480
  """
3398
3481
 
3399
3482
  ...
@@ -3404,7 +3487,9 @@ def select_linked_pick(
3404
3487
  undo: bool | None = None,
3405
3488
  *,
3406
3489
  deselect: bool | None = False,
3407
- delimit: set[str] | None = {"SEAM"},
3490
+ delimit: set[typing.Literal["NORMAL", "MATERIAL", "SEAM", "SHARP", "UV"]] | None = {
3491
+ "SEAM"
3492
+ },
3408
3493
  object_index: int | None = -1,
3409
3494
  index: int | None = -1,
3410
3495
  ):
@@ -3416,7 +3501,7 @@ def select_linked_pick(
3416
3501
  :param deselect: Deselect
3417
3502
  :type deselect: bool | None
3418
3503
  :param delimit: Delimit, Delimit selected region
3419
- :type delimit: set[str] | None
3504
+ :type delimit: set[typing.Literal['NORMAL', 'MATERIAL', 'SEAM', 'SHARP', 'UV']] | None
3420
3505
  :type object_index: int | None
3421
3506
  :type index: int | None
3422
3507
  """
@@ -3446,7 +3531,7 @@ def select_mirror(
3446
3531
  execution_context: int | str | None = None,
3447
3532
  undo: bool | None = None,
3448
3533
  *,
3449
- axis: set[str] | None = {"X"},
3534
+ axis: set[typing.Literal["X", "Y", "Z"]] | None = {"X"},
3450
3535
  extend: bool | None = False,
3451
3536
  ):
3452
3537
  """Select mesh items at mirrored locations
@@ -3455,7 +3540,7 @@ def select_mirror(
3455
3540
  :type execution_context: int | str | None
3456
3541
  :type undo: bool | None
3457
3542
  :param axis: Axis
3458
- :type axis: set[str] | None
3543
+ :type axis: set[typing.Literal['X', 'Y', 'Z']] | None
3459
3544
  :param extend: Extend, Extend the existing selection
3460
3545
  :type extend: bool | None
3461
3546
  """
@@ -3469,8 +3554,8 @@ def select_mode(
3469
3554
  *,
3470
3555
  use_extend: bool | None = False,
3471
3556
  use_expand: bool | None = False,
3472
- type: str | None = "VERT",
3473
- action: str | None = "TOGGLE",
3557
+ type: typing.Literal["VERT", "EDGE", "FACE"] | None = "VERT",
3558
+ action: typing.Literal["DISABLE", "ENABLE", "TOGGLE"] | None = "TOGGLE",
3474
3559
  ):
3475
3560
  """Change selection mode
3476
3561
 
@@ -3482,7 +3567,7 @@ def select_mode(
3482
3567
  :param use_expand: Expand
3483
3568
  :type use_expand: bool | None
3484
3569
  :param type: Type
3485
- :type type: str | None
3570
+ :type type: typing.Literal['VERT', 'EDGE', 'FACE'] | None
3486
3571
  :param action: Action, Selection action to execute
3487
3572
 
3488
3573
  DISABLE
@@ -3493,7 +3578,7 @@ def select_mode(
3493
3578
 
3494
3579
  TOGGLE
3495
3580
  Toggle -- Toggle disabled flag for selected markers.
3496
- :type action: str | None
3581
+ :type action: typing.Literal['DISABLE','ENABLE','TOGGLE'] | None
3497
3582
  """
3498
3583
 
3499
3584
  ...
@@ -3608,7 +3693,7 @@ def select_random(
3608
3693
  *,
3609
3694
  ratio: float | None = 0.5,
3610
3695
  seed: int | None = 0,
3611
- action: str | None = "SELECT",
3696
+ action: typing.Literal["SELECT", "DESELECT"] | None = "SELECT",
3612
3697
  ):
3613
3698
  """Randomly select vertices
3614
3699
 
@@ -3626,7 +3711,7 @@ def select_random(
3626
3711
 
3627
3712
  DESELECT
3628
3713
  Deselect -- Deselect all elements.
3629
- :type action: str | None
3714
+ :type action: typing.Literal['SELECT','DESELECT'] | None
3630
3715
  """
3631
3716
 
3632
3717
  ...
@@ -3636,8 +3721,32 @@ def select_similar(
3636
3721
  execution_context: int | str | None = None,
3637
3722
  undo: bool | None = None,
3638
3723
  *,
3639
- type: str | None = "VERT_NORMAL",
3640
- compare: str | None = "EQUAL",
3724
+ type: typing.Literal[
3725
+ "VERT_NORMAL",
3726
+ "VERT_FACES",
3727
+ "VERT_GROUPS",
3728
+ "VERT_EDGES",
3729
+ "VERT_CREASE",
3730
+ "EDGE_LENGTH",
3731
+ "EDGE_DIR",
3732
+ "EDGE_FACES",
3733
+ "EDGE_FACE_ANGLE",
3734
+ "EDGE_CREASE",
3735
+ "EDGE_BEVEL",
3736
+ "EDGE_SEAM",
3737
+ "EDGE_SHARP",
3738
+ "EDGE_FREESTYLE",
3739
+ "FACE_MATERIAL",
3740
+ "FACE_AREA",
3741
+ "FACE_SIDES",
3742
+ "FACE_PERIMETER",
3743
+ "FACE_NORMAL",
3744
+ "FACE_COPLANAR",
3745
+ "FACE_SMOOTH",
3746
+ "FACE_FREESTYLE",
3747
+ ]
3748
+ | None = "VERT_NORMAL",
3749
+ compare: typing.Literal["EQUAL", "GREATER", "LESS"] | None = "EQUAL",
3641
3750
  threshold: float | None = 0.0,
3642
3751
  ):
3643
3752
  """Select similar vertices, edges or faces by property types
@@ -3646,9 +3755,9 @@ def select_similar(
3646
3755
  :type execution_context: int | str | None
3647
3756
  :type undo: bool | None
3648
3757
  :param type: Type
3649
- :type type: str | None
3758
+ :type type: typing.Literal['VERT_NORMAL','VERT_FACES','VERT_GROUPS','VERT_EDGES','VERT_CREASE','EDGE_LENGTH','EDGE_DIR','EDGE_FACES','EDGE_FACE_ANGLE','EDGE_CREASE','EDGE_BEVEL','EDGE_SEAM','EDGE_SHARP','EDGE_FREESTYLE','FACE_MATERIAL','FACE_AREA','FACE_SIDES','FACE_PERIMETER','FACE_NORMAL','FACE_COPLANAR','FACE_SMOOTH','FACE_FREESTYLE'] | None
3650
3759
  :param compare: Compare
3651
- :type compare: str | None
3760
+ :type compare: typing.Literal['EQUAL','GREATER','LESS'] | None
3652
3761
  :param threshold: Threshold
3653
3762
  :type threshold: float | None
3654
3763
  """
@@ -3692,7 +3801,7 @@ def separate(
3692
3801
  execution_context: int | str | None = None,
3693
3802
  undo: bool | None = None,
3694
3803
  *,
3695
- type: str | None = "SELECTED",
3804
+ type: typing.Literal["SELECTED", "MATERIAL", "LOOSE"] | None = "SELECTED",
3696
3805
  ):
3697
3806
  """Separate selected geometry into a new mesh
3698
3807
 
@@ -3700,7 +3809,7 @@ def separate(
3700
3809
  :type execution_context: int | str | None
3701
3810
  :type undo: bool | None
3702
3811
  :param type: Type
3703
- :type type: str | None
3812
+ :type type: typing.Literal['SELECTED','MATERIAL','LOOSE'] | None
3704
3813
  """
3705
3814
 
3706
3815
  ...
@@ -3763,7 +3872,8 @@ def shortest_path_pick(
3763
3872
  execution_context: int | str | None = None,
3764
3873
  undo: bool | None = None,
3765
3874
  *,
3766
- edge_mode: str | None = "SELECT",
3875
+ edge_mode: typing.Literal["SELECT", "SEAM", "SHARP", "CREASE", "BEVEL", "FREESTYLE"]
3876
+ | None = "SELECT",
3767
3877
  use_face_step: bool | None = False,
3768
3878
  use_topology_distance: bool | None = False,
3769
3879
  use_fill: bool | None = False,
@@ -3778,7 +3888,7 @@ def shortest_path_pick(
3778
3888
  :type execution_context: int | str | None
3779
3889
  :type undo: bool | None
3780
3890
  :param edge_mode: Edge Tag, The edge flag to tag when selecting the shortest path
3781
- :type edge_mode: str | None
3891
+ :type edge_mode: typing.Literal['SELECT','SEAM','SHARP','CREASE','BEVEL','FREESTYLE'] | None
3782
3892
  :param use_face_step: Face Stepping, Traverse connected faces (includes diagonals and edge-rings)
3783
3893
  :type use_face_step: bool | None
3784
3894
  :param use_topology_distance: Topology Distance, Find the minimum number of steps, ignoring spatial distance
@@ -3801,7 +3911,8 @@ def shortest_path_select(
3801
3911
  execution_context: int | str | None = None,
3802
3912
  undo: bool | None = None,
3803
3913
  *,
3804
- edge_mode: str | None = "SELECT",
3914
+ edge_mode: typing.Literal["SELECT", "SEAM", "SHARP", "CREASE", "BEVEL", "FREESTYLE"]
3915
+ | None = "SELECT",
3805
3916
  use_face_step: bool | None = False,
3806
3917
  use_topology_distance: bool | None = False,
3807
3918
  use_fill: bool | None = False,
@@ -3815,7 +3926,7 @@ def shortest_path_select(
3815
3926
  :type execution_context: int | str | None
3816
3927
  :type undo: bool | None
3817
3928
  :param edge_mode: Edge Tag, The edge flag to tag when selecting the shortest path
3818
- :type edge_mode: str | None
3929
+ :type edge_mode: typing.Literal['SELECT','SEAM','SHARP','CREASE','BEVEL','FREESTYLE'] | None
3819
3930
  :param use_face_step: Face Stepping, Traverse connected faces (includes diagonals and edge-rings)
3820
3931
  :type use_face_step: bool | None
3821
3932
  :param use_topology_distance: Topology Distance, Find the minimum number of steps, ignoring spatial distance
@@ -3873,8 +3984,17 @@ def sort_elements(
3873
3984
  execution_context: int | str | None = None,
3874
3985
  undo: bool | None = None,
3875
3986
  *,
3876
- type: str | None = "VIEW_ZAXIS",
3877
- elements: set[str] | None = {"VERT"},
3987
+ type: typing.Literal[
3988
+ "VIEW_ZAXIS",
3989
+ "VIEW_XAXIS",
3990
+ "CURSOR_DISTANCE",
3991
+ "MATERIAL",
3992
+ "SELECTED",
3993
+ "RANDOMIZE",
3994
+ "REVERSE",
3995
+ ]
3996
+ | None = "VIEW_ZAXIS",
3997
+ elements: set[typing.Literal["VERT", "EDGE", "FACE"]] | None = {"VERT"},
3878
3998
  reverse: bool | None = False,
3879
3999
  seed: int | None = 0,
3880
4000
  ):
@@ -3906,9 +4026,9 @@ def sort_elements(
3906
4026
 
3907
4027
  REVERSE
3908
4028
  Reverse -- Reverse current order of selected elements.
3909
- :type type: str | None
4029
+ :type type: typing.Literal['VIEW_ZAXIS','VIEW_XAXIS','CURSOR_DISTANCE','MATERIAL','SELECTED','RANDOMIZE','REVERSE'] | None
3910
4030
  :param elements: Elements, Which elements to affect (vertices, edges and/or faces)
3911
- :type elements: set[str] | None
4031
+ :type elements: set[typing.Literal['VERT','EDGE','FACE']] | None
3912
4032
  :param reverse: Reverse, Reverse the sorting effect
3913
4033
  :type reverse: bool | None
3914
4034
  :param seed: Seed, Seed for random-based operations
@@ -3989,7 +4109,8 @@ def subdivide(
3989
4109
  number_cuts: int | None = 1,
3990
4110
  smoothness: float | None = 0.0,
3991
4111
  ngon: bool | None = True,
3992
- quadcorner: str | None = "STRAIGHT_CUT",
4112
+ quadcorner: typing.Literal["INNERVERT", "PATH", "STRAIGHT_CUT", "FAN"]
4113
+ | None = "STRAIGHT_CUT",
3993
4114
  fractal: float | None = 0.0,
3994
4115
  fractal_along_normal: float | None = 0.0,
3995
4116
  seed: int | None = 0,
@@ -4006,7 +4127,7 @@ def subdivide(
4006
4127
  :param ngon: Create N-Gons, When disabled, newly created faces are limited to 3 and 4 sided faces
4007
4128
  :type ngon: bool | None
4008
4129
  :param quadcorner: Quad Corner Type, How to subdivide quad corners (anything other than Straight Cut will prevent n-gons)
4009
- :type quadcorner: str | None
4130
+ :type quadcorner: typing.Literal['INNERVERT','PATH','STRAIGHT_CUT','FAN'] | None
4010
4131
  :param fractal: Fractal, Fractal randomness factor
4011
4132
  :type fractal: float | None
4012
4133
  :param fractal_along_normal: Along Normal, Apply fractal displacement along normal only
@@ -4023,10 +4144,13 @@ def subdivide_edgering(
4023
4144
  undo: bool | None = None,
4024
4145
  *,
4025
4146
  number_cuts: int | None = 10,
4026
- interpolation: str | None = "PATH",
4147
+ interpolation: typing.Literal["LINEAR", "PATH", "SURFACE"] | None = "PATH",
4027
4148
  smoothness: float | None = 1.0,
4028
4149
  profile_shape_factor: float | None = 0.0,
4029
- profile_shape: str | None = "SMOOTH",
4150
+ profile_shape: typing.Literal[
4151
+ "SMOOTH", "SPHERE", "ROOT", "INVERSE_SQUARE", "SHARP", "LINEAR"
4152
+ ]
4153
+ | None = "SMOOTH",
4030
4154
  ):
4031
4155
  """Subdivide perpendicular edges to the selected edge-ring
4032
4156
 
@@ -4036,13 +4160,13 @@ def subdivide_edgering(
4036
4160
  :param number_cuts: Number of Cuts
4037
4161
  :type number_cuts: int | None
4038
4162
  :param interpolation: Interpolation, Interpolation method
4039
- :type interpolation: str | None
4163
+ :type interpolation: typing.Literal['LINEAR','PATH','SURFACE'] | None
4040
4164
  :param smoothness: Smoothness, Smoothness factor
4041
4165
  :type smoothness: float | None
4042
4166
  :param profile_shape_factor: Profile Factor, How much intermediary new edges are shrunk/expanded
4043
4167
  :type profile_shape_factor: float | None
4044
4168
  :param profile_shape: Profile Shape, Shape of the profile
4045
- :type profile_shape: str | None
4169
+ :type profile_shape: typing.Literal['SMOOTH', 'SPHERE', 'ROOT', 'INVERSE_SQUARE', 'SHARP', 'LINEAR'] | None
4046
4170
  """
4047
4171
 
4048
4172
  ...
@@ -4052,7 +4176,15 @@ def symmetrize(
4052
4176
  execution_context: int | str | None = None,
4053
4177
  undo: bool | None = None,
4054
4178
  *,
4055
- direction: str | None = "NEGATIVE_X",
4179
+ direction: typing.Literal[
4180
+ "NEGATIVE_X",
4181
+ "POSITIVE_X",
4182
+ "NEGATIVE_Y",
4183
+ "POSITIVE_Y",
4184
+ "NEGATIVE_Z",
4185
+ "POSITIVE_Z",
4186
+ ]
4187
+ | None = "NEGATIVE_X",
4056
4188
  threshold: float | None = 0.0001,
4057
4189
  ):
4058
4190
  """Enforce symmetry (both form and topological) across an axis
@@ -4061,7 +4193,7 @@ def symmetrize(
4061
4193
  :type execution_context: int | str | None
4062
4194
  :type undo: bool | None
4063
4195
  :param direction: Direction, Which sides to copy from and to
4064
- :type direction: str | None
4196
+ :type direction: typing.Literal['NEGATIVE_X', 'POSITIVE_X', 'NEGATIVE_Y', 'POSITIVE_Y', 'NEGATIVE_Z', 'POSITIVE_Z'] | None
4065
4197
  :param threshold: Threshold, Limit for snap middle vertices to the axis center
4066
4198
  :type threshold: float | None
4067
4199
  """
@@ -4073,7 +4205,15 @@ def symmetry_snap(
4073
4205
  execution_context: int | str | None = None,
4074
4206
  undo: bool | None = None,
4075
4207
  *,
4076
- direction: str | None = "NEGATIVE_X",
4208
+ direction: typing.Literal[
4209
+ "NEGATIVE_X",
4210
+ "POSITIVE_X",
4211
+ "NEGATIVE_Y",
4212
+ "POSITIVE_Y",
4213
+ "NEGATIVE_Z",
4214
+ "POSITIVE_Z",
4215
+ ]
4216
+ | None = "NEGATIVE_X",
4077
4217
  threshold: float | None = 0.05,
4078
4218
  factor: float | None = 0.5,
4079
4219
  use_center: bool | None = True,
@@ -4084,7 +4224,7 @@ def symmetry_snap(
4084
4224
  :type execution_context: int | str | None
4085
4225
  :type undo: bool | None
4086
4226
  :param direction: Direction, Which sides to copy from and to
4087
- :type direction: str | None
4227
+ :type direction: typing.Literal['NEGATIVE_X', 'POSITIVE_X', 'NEGATIVE_Y', 'POSITIVE_Y', 'NEGATIVE_Z', 'POSITIVE_Z'] | None
4088
4228
  :param threshold: Threshold, Distance within which matching vertices are searched
4089
4229
  :type threshold: float | None
4090
4230
  :param factor: Factor, Mix factor of the locations of the vertices