fake-bpy-module 20240803__py3-none-any.whl → 20240805__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 (76) hide show
  1. _bpy_internal/extensions/__init__.pyi +1 -0
  2. _bpy_internal/extensions/stale_file_manager/__init__.pyi +39 -0
  3. _bpy_internal/extensions/wheel_manager/__init__.pyi +3 -1
  4. addon_utils/__init__.pyi +2 -0
  5. aud/__init__.pyi +77 -77
  6. bmesh/ops/__init__.pyi +54 -36
  7. bmesh/types/__init__.pyi +24 -24
  8. bpy/ops/action/__init__.pyi +55 -32
  9. bpy/ops/anim/__init__.pyi +22 -22
  10. bpy/ops/armature/__init__.pyi +47 -20
  11. bpy/ops/asset/__init__.pyi +5 -2
  12. bpy/ops/boid/__init__.pyi +12 -2
  13. bpy/ops/brush/__init__.pyi +18 -12
  14. bpy/ops/buttons/__init__.pyi +10 -4
  15. bpy/ops/cachefile/__init__.pyi +12 -6
  16. bpy/ops/clip/__init__.pyi +54 -38
  17. bpy/ops/console/__init__.pyi +17 -6
  18. bpy/ops/constraint/__init__.pyi +28 -28
  19. bpy/ops/curve/__init__.pyi +72 -34
  20. bpy/ops/curves/__init__.pyi +16 -16
  21. bpy/ops/dpaint/__init__.pyi +4 -4
  22. bpy/ops/ed/__init__.pyi +5 -2
  23. bpy/ops/export_anim/__init__.pyi +3 -2
  24. bpy/ops/export_scene/__init__.pyi +55 -45
  25. bpy/ops/file/__init__.pyi +40 -16
  26. bpy/ops/font/__init__.pyi +59 -16
  27. bpy/ops/geometry/__init__.pyi +55 -20
  28. bpy/ops/gpencil/__init__.pyi +155 -122
  29. bpy/ops/graph/__init__.pyi +131 -52
  30. bpy/ops/grease_pencil/__init__.pyi +78 -58
  31. bpy/ops/image/__init__.pyi +77 -54
  32. bpy/ops/import_anim/__init__.pyi +11 -8
  33. bpy/ops/import_scene/__init__.pyi +20 -18
  34. bpy/ops/info/__init__.pyi +4 -4
  35. bpy/ops/lattice/__init__.pyi +8 -8
  36. bpy/ops/marker/__init__.pyi +6 -6
  37. bpy/ops/mask/__init__.pyi +13 -12
  38. bpy/ops/mball/__init__.pyi +6 -6
  39. bpy/ops/mesh/__init__.pyi +290 -150
  40. bpy/ops/nla/__init__.pyi +28 -20
  41. bpy/ops/node/__init__.pyi +43 -32
  42. bpy/ops/object/__init__.pyi +651 -210
  43. bpy/ops/outliner/__init__.pyi +113 -32
  44. bpy/ops/paint/__init__.pyi +65 -56
  45. bpy/ops/palette/__init__.pyi +4 -4
  46. bpy/ops/particle/__init__.pyi +14 -14
  47. bpy/ops/pose/__init__.pyi +121 -44
  48. bpy/ops/preferences/__init__.pyi +9 -6
  49. bpy/ops/render/__init__.pyi +3 -2
  50. bpy/ops/rigidbody/__init__.pyi +45 -14
  51. bpy/ops/scene/__init__.pyi +69 -22
  52. bpy/ops/screen/__init__.pyi +78 -16
  53. bpy/ops/sculpt/__init__.pyi +131 -74
  54. bpy/ops/sculpt_curves/__init__.pyi +2 -2
  55. bpy/ops/sequencer/__init__.pyi +156 -60
  56. bpy/ops/sound/__init__.pyi +40 -16
  57. bpy/ops/surface/__init__.pyi +12 -12
  58. bpy/ops/text/__init__.pyi +65 -20
  59. bpy/ops/texture/__init__.pyi +2 -2
  60. bpy/ops/transform/__init__.pyi +344 -72
  61. bpy/ops/ui/__init__.pyi +9 -6
  62. bpy/ops/uilist/__init__.pyi +2 -2
  63. bpy/ops/uv/__init__.pyi +90 -66
  64. bpy/ops/view3d/__init__.pyi +36 -30
  65. bpy/ops/wm/__init__.pyi +443 -156
  66. bpy/types/__init__.pyi +28584 -2857
  67. {fake_bpy_module-20240803.dist-info → fake_bpy_module-20240805.dist-info}/METADATA +1 -1
  68. {fake_bpy_module-20240803.dist-info → fake_bpy_module-20240805.dist-info}/RECORD +76 -75
  69. freestyle/chainingiterators/__init__.pyi +4 -4
  70. freestyle/types/__init__.pyi +76 -63
  71. idprop/types/__init__.pyi +2 -2
  72. imbuf/types/__init__.pyi +2 -2
  73. mathutils/__init__.pyi +1004 -970
  74. mathutils/bvhtree/__init__.pyi +2 -2
  75. {fake_bpy_module-20240803.dist-info → fake_bpy_module-20240805.dist-info}/WHEEL +0 -0
  76. {fake_bpy_module-20240803.dist-info → fake_bpy_module-20240805.dist-info}/top_level.txt +0 -0
@@ -14,9 +14,28 @@ def add(
14
14
  undo: bool | None = None,
15
15
  *,
16
16
  radius: float | None = 1.0,
17
- type: str | None = "EMPTY",
17
+ type: typing.Literal[
18
+ "MESH",
19
+ "CURVE",
20
+ "SURFACE",
21
+ "META",
22
+ "FONT",
23
+ "CURVES",
24
+ "POINTCLOUD",
25
+ "VOLUME",
26
+ "GPENCIL",
27
+ "GREASEPENCIL",
28
+ "ARMATURE",
29
+ "LATTICE",
30
+ "EMPTY",
31
+ "LIGHT",
32
+ "LIGHT_PROBE",
33
+ "CAMERA",
34
+ "SPEAKER",
35
+ ]
36
+ | None = "EMPTY",
18
37
  enter_editmode: bool | None = False,
19
- align: str | None = "WORLD",
38
+ align: typing.Literal["WORLD", "VIEW", "CURSOR"] | None = "WORLD",
20
39
  location: collections.abc.Sequence[float] | mathutils.Vector | None = (
21
40
  0.0,
22
41
  0.0,
@@ -37,7 +56,7 @@ def add(
37
56
  :param radius: Radius
38
57
  :type radius: float | None
39
58
  :param type: Type
40
- :type type: str | None
59
+ :type type: typing.Literal['MESH', 'CURVE', 'SURFACE', 'META', 'FONT', 'CURVES', 'POINTCLOUD', 'VOLUME', 'GPENCIL', 'GREASEPENCIL', 'ARMATURE', 'LATTICE', 'EMPTY', 'LIGHT', 'LIGHT_PROBE', 'CAMERA', 'SPEAKER'] | None
41
60
  :param enter_editmode: Enter Edit Mode, Enter edit mode when adding this object
42
61
  :type enter_editmode: bool | None
43
62
  :param align: Align, The alignment of the new object
@@ -50,7 +69,7 @@ def add(
50
69
 
51
70
  CURSOR
52
71
  3D Cursor -- Use the 3D cursor orientation for the new object.
53
- :type align: str | None
72
+ :type align: typing.Literal['WORLD','VIEW','CURSOR'] | None
54
73
  :param location: Location, Location for the newly added object
55
74
  :type location: collections.abc.Sequence[float] | mathutils.Vector | None
56
75
  :param rotation: Rotation, Rotation for the newly added object
@@ -121,9 +140,9 @@ def align(
121
140
  undo: bool | None = None,
122
141
  *,
123
142
  bb_quality: bool | None = True,
124
- align_mode: str | None = "OPT_2",
125
- relative_to: str | None = "OPT_4",
126
- align_axis: set[str] | None = {},
143
+ align_mode: typing.Literal["OPT_1", "OPT_2", "OPT_3"] | None = "OPT_2",
144
+ relative_to: typing.Literal["OPT_1", "OPT_2", "OPT_3", "OPT_4"] | None = "OPT_4",
145
+ align_axis: set[typing.Literal["X", "Y", "Z"]] | None = {},
127
146
  ):
128
147
  """Align objects
129
148
 
@@ -133,7 +152,7 @@ def align(
133
152
  :param bb_quality: High Quality, Enables high quality but slow calculation of the bounding box for perfect results on complex shape meshes with rotation/scale
134
153
  :type bb_quality: bool | None
135
154
  :param align_mode: Align Mode, Side of object to use for alignment
136
- :type align_mode: str | None
155
+ :type align_mode: typing.Literal['OPT_1','OPT_2','OPT_3'] | None
137
156
  :param relative_to: Relative To, Reference location to align to
138
157
 
139
158
  OPT_1
@@ -147,9 +166,9 @@ def align(
147
166
 
148
167
  OPT_4
149
168
  Active -- Use the active object as the position for the selected objects to align to.
150
- :type relative_to: str | None
169
+ :type relative_to: typing.Literal['OPT_1','OPT_2','OPT_3','OPT_4'] | None
151
170
  :param align_axis: Align, Align to axis
152
- :type align_axis: set[str] | None
171
+ :type align_axis: set[typing.Literal['X','Y','Z']] | None
153
172
  """
154
173
 
155
174
  ...
@@ -175,7 +194,7 @@ def armature_add(
175
194
  *,
176
195
  radius: float | None = 1.0,
177
196
  enter_editmode: bool | None = False,
178
- align: str | None = "WORLD",
197
+ align: typing.Literal["WORLD", "VIEW", "CURSOR"] | None = "WORLD",
179
198
  location: collections.abc.Sequence[float] | mathutils.Vector | None = (
180
199
  0.0,
181
200
  0.0,
@@ -207,7 +226,7 @@ def armature_add(
207
226
 
208
227
  CURSOR
209
228
  3D Cursor -- Use the 3D cursor orientation for the new object.
210
- :type align: str | None
229
+ :type align: typing.Literal['WORLD','VIEW','CURSOR'] | None
211
230
  :param location: Location, Location for the newly added object
212
231
  :type location: collections.abc.Sequence[float] | mathutils.Vector | None
213
232
  :param rotation: Rotation, Rotation for the newly added object
@@ -244,23 +263,52 @@ def bake(
244
263
  execution_context: int | str | None = None,
245
264
  undo: bool | None = None,
246
265
  *,
247
- type: str | None = "COMBINED",
248
- pass_filter: set[str] | None = {},
266
+ type: typing.Literal[
267
+ "COMBINED",
268
+ "AO",
269
+ "SHADOW",
270
+ "POSITION",
271
+ "NORMAL",
272
+ "UV",
273
+ "ROUGHNESS",
274
+ "EMIT",
275
+ "ENVIRONMENT",
276
+ "DIFFUSE",
277
+ "GLOSSY",
278
+ "TRANSMISSION",
279
+ ]
280
+ | None = "COMBINED",
281
+ pass_filter: set[
282
+ typing.Literal[
283
+ "NONE",
284
+ "EMIT",
285
+ "DIRECT",
286
+ "INDIRECT",
287
+ "COLOR",
288
+ "DIFFUSE",
289
+ "GLOSSY",
290
+ "TRANSMISSION",
291
+ ]
292
+ ]
293
+ | None = {},
249
294
  filepath: str = "",
250
295
  width: int | None = 512,
251
296
  height: int | None = 512,
252
297
  margin: int | None = 16,
253
- margin_type: str | None = "EXTEND",
298
+ margin_type: typing.Literal["ADJACENT_FACES", "EXTEND"] | None = "EXTEND",
254
299
  use_selected_to_active: bool | None = False,
255
300
  max_ray_distance: float | None = 0.0,
256
301
  cage_extrusion: float | None = 0.0,
257
302
  cage_object: str = "",
258
- normal_space: str | None = "TANGENT",
259
- normal_r: str | None = "POS_X",
260
- normal_g: str | None = "POS_Y",
261
- normal_b: str | None = "POS_Z",
262
- target: str | None = "IMAGE_TEXTURES",
263
- save_mode: str | None = "INTERNAL",
303
+ normal_space: typing.Literal["OBJECT", "TANGENT"] | None = "TANGENT",
304
+ normal_r: typing.Literal["POS_X", "POS_Y", "POS_Z", "NEG_X", "NEG_Y", "NEG_Z"]
305
+ | None = "POS_X",
306
+ normal_g: typing.Literal["POS_X", "POS_Y", "POS_Z", "NEG_X", "NEG_Y", "NEG_Z"]
307
+ | None = "POS_Y",
308
+ normal_b: typing.Literal["POS_X", "POS_Y", "POS_Z", "NEG_X", "NEG_Y", "NEG_Z"]
309
+ | None = "POS_Z",
310
+ target: typing.Literal["IMAGE_TEXTURES", "VERTEX_COLORS"] | None = "IMAGE_TEXTURES",
311
+ save_mode: typing.Literal["INTERNAL", "EXTERNAL"] | None = "INTERNAL",
264
312
  use_clear: bool | None = False,
265
313
  use_cage: bool | None = False,
266
314
  use_split_materials: bool | None = False,
@@ -273,9 +321,9 @@ def bake(
273
321
  :type execution_context: int | str | None
274
322
  :type undo: bool | None
275
323
  :param type: Type, Type of pass to bake, some of them may not be supported by the current render engine
276
- :type type: str | None
324
+ :type type: typing.Literal['COMBINED', 'AO', 'SHADOW', 'POSITION', 'NORMAL', 'UV', 'ROUGHNESS', 'EMIT', 'ENVIRONMENT', 'DIFFUSE', 'GLOSSY', 'TRANSMISSION'] | None
277
325
  :param pass_filter: Pass Filter, Filter to combined, diffuse, glossy, transmission and subsurface passes
278
- :type pass_filter: set[str] | None
326
+ :type pass_filter: set[typing.Literal['NONE', 'EMIT', 'DIRECT', 'INDIRECT', 'COLOR', 'DIFFUSE', 'GLOSSY', 'TRANSMISSION']] | None
279
327
  :param filepath: File Path, Image filepath to use when saving externally
280
328
  :type filepath: str
281
329
  :param width: Width, Horizontal dimension of the baking map (external only)
@@ -285,7 +333,7 @@ def bake(
285
333
  :param margin: Margin, Extends the baked result as a post process filter
286
334
  :type margin: int | None
287
335
  :param margin_type: Margin Type, Which algorithm to use to generate the margin
288
- :type margin_type: str | None
336
+ :type margin_type: typing.Literal['ADJACENT_FACES', 'EXTEND'] | None
289
337
  :param use_selected_to_active: Selected to Active, Bake shading on the surface of selected objects to the active object
290
338
  :type use_selected_to_active: bool | None
291
339
  :param max_ray_distance: Max Ray Distance, The maximum ray distance for matching points between the active and selected objects. If zero, there is no limit
@@ -295,17 +343,17 @@ def bake(
295
343
  :param cage_object: Cage Object, Object to use as cage, instead of calculating the cage from the active object with cage extrusion
296
344
  :type cage_object: str
297
345
  :param normal_space: Normal Space, Choose normal space for baking
298
- :type normal_space: str | None
346
+ :type normal_space: typing.Literal['OBJECT', 'TANGENT'] | None
299
347
  :param normal_r: R, Axis to bake in red channel
300
- :type normal_r: str | None
348
+ :type normal_r: typing.Literal['POS_X', 'POS_Y', 'POS_Z', 'NEG_X', 'NEG_Y', 'NEG_Z'] | None
301
349
  :param normal_g: G, Axis to bake in green channel
302
- :type normal_g: str | None
350
+ :type normal_g: typing.Literal['POS_X', 'POS_Y', 'POS_Z', 'NEG_X', 'NEG_Y', 'NEG_Z'] | None
303
351
  :param normal_b: B, Axis to bake in blue channel
304
- :type normal_b: str | None
352
+ :type normal_b: typing.Literal['POS_X', 'POS_Y', 'POS_Z', 'NEG_X', 'NEG_Y', 'NEG_Z'] | None
305
353
  :param target: Target, Where to output the baked map
306
- :type target: str | None
354
+ :type target: typing.Literal['IMAGE_TEXTURES', 'VERTEX_COLORS'] | None
307
355
  :param save_mode: Save Mode, Where to save baked image textures
308
- :type save_mode: str | None
356
+ :type save_mode: typing.Literal['INTERNAL', 'EXTERNAL'] | None
309
357
  :param use_clear: Clear, Clear images before baking (only for internal saving)
310
358
  :type use_clear: bool | None
311
359
  :param use_cage: Cage, Cast rays to active object from a cage
@@ -340,7 +388,7 @@ def camera_add(
340
388
  undo: bool | None = None,
341
389
  *,
342
390
  enter_editmode: bool | None = False,
343
- align: str | None = "WORLD",
391
+ align: typing.Literal["WORLD", "VIEW", "CURSOR"] | None = "WORLD",
344
392
  location: collections.abc.Sequence[float] | mathutils.Vector | None = (
345
393
  0.0,
346
394
  0.0,
@@ -370,7 +418,7 @@ def camera_add(
370
418
 
371
419
  CURSOR
372
420
  3D Cursor -- Use the 3D cursor orientation for the new object.
373
- :type align: str | None
421
+ :type align: typing.Literal['WORLD','VIEW','CURSOR'] | None
374
422
  :param location: Location, Location for the newly added object
375
423
  :type location: collections.abc.Sequence[float] | mathutils.Vector | None
376
424
  :param rotation: Rotation, Rotation for the newly added object
@@ -415,7 +463,7 @@ def collection_external_asset_drop(
415
463
  undo: bool | None = None,
416
464
  *,
417
465
  session_uid: int | None = 0,
418
- align: str | None = "WORLD",
466
+ align: typing.Literal["WORLD", "VIEW", "CURSOR"] | None = "WORLD",
419
467
  location: collections.abc.Sequence[float] | mathutils.Vector | None = (
420
468
  0.0,
421
469
  0.0,
@@ -449,7 +497,7 @@ def collection_external_asset_drop(
449
497
 
450
498
  CURSOR
451
499
  3D Cursor -- Use the 3D cursor orientation for the new object.
452
- :type align: str | None
500
+ :type align: typing.Literal['WORLD','VIEW','CURSOR'] | None
453
501
  :param location: Location, Location for the newly added object
454
502
  :type location: collections.abc.Sequence[float] | mathutils.Vector | None
455
503
  :param rotation: Rotation, Rotation for the newly added object
@@ -475,7 +523,7 @@ def collection_instance_add(
475
523
  *,
476
524
  name: str = "Collection",
477
525
  collection: str | None = "",
478
- align: str | None = "WORLD",
526
+ align: typing.Literal["WORLD", "VIEW", "CURSOR"] | None = "WORLD",
479
527
  location: collections.abc.Sequence[float] | mathutils.Vector | None = (
480
528
  0.0,
481
529
  0.0,
@@ -510,7 +558,7 @@ def collection_instance_add(
510
558
 
511
559
  CURSOR
512
560
  3D Cursor -- Use the 3D cursor orientation for the new object.
513
- :type align: str | None
561
+ :type align: typing.Literal['WORLD','VIEW','CURSOR'] | None
514
562
  :param location: Location, Location for the newly added object
515
563
  :type location: collections.abc.Sequence[float] | mathutils.Vector | None
516
564
  :param rotation: Rotation, Rotation for the newly added object
@@ -656,7 +704,8 @@ def convert(
656
704
  execution_context: int | str | None = None,
657
705
  undo: bool | None = None,
658
706
  *,
659
- target: str | None = "MESH",
707
+ target: typing.Literal["CURVE", "MESH", "POINTCLOUD", "CURVES", "GREASEPENCIL"]
708
+ | None = "MESH",
660
709
  keep_original: bool | None = False,
661
710
  merge_customdata: bool | None = True,
662
711
  angle: float | None = 1.22173,
@@ -686,7 +735,7 @@ def convert(
686
735
 
687
736
  GREASEPENCIL
688
737
  Grease Pencil -- Grease Pencil from Curve or Mesh objects.
689
- :type target: str | None
738
+ :type target: typing.Literal['CURVE','MESH','POINTCLOUD','CURVES','GREASEPENCIL'] | None
690
739
  :param keep_original: Keep Original, Keep original objects instead of replacing them
691
740
  :type keep_original: bool | None
692
741
  :param merge_customdata: Merge UVs, Merge UV coordinates that share a vertex to account for imprecision in some modifiers
@@ -728,7 +777,7 @@ def curves_empty_hair_add(
728
777
  execution_context: int | str | None = None,
729
778
  undo: bool | None = None,
730
779
  *,
731
- align: str | None = "WORLD",
780
+ align: typing.Literal["WORLD", "VIEW", "CURSOR"] | None = "WORLD",
732
781
  location: collections.abc.Sequence[float] | mathutils.Vector | None = (
733
782
  0.0,
734
783
  0.0,
@@ -756,7 +805,7 @@ def curves_empty_hair_add(
756
805
 
757
806
  CURSOR
758
807
  3D Cursor -- Use the 3D cursor orientation for the new object.
759
- :type align: str | None
808
+ :type align: typing.Literal['WORLD','VIEW','CURSOR'] | None
760
809
  :param location: Location, Location for the newly added object
761
810
  :type location: collections.abc.Sequence[float] | mathutils.Vector | None
762
811
  :param rotation: Rotation, Rotation for the newly added object
@@ -772,7 +821,7 @@ def curves_random_add(
772
821
  execution_context: int | str | None = None,
773
822
  undo: bool | None = None,
774
823
  *,
775
- align: str | None = "WORLD",
824
+ align: typing.Literal["WORLD", "VIEW", "CURSOR"] | None = "WORLD",
776
825
  location: collections.abc.Sequence[float] | mathutils.Vector | None = (
777
826
  0.0,
778
827
  0.0,
@@ -800,7 +849,7 @@ def curves_random_add(
800
849
 
801
850
  CURSOR
802
851
  3D Cursor -- Use the 3D cursor orientation for the new object.
803
- :type align: str | None
852
+ :type align: typing.Literal['WORLD','VIEW','CURSOR'] | None
804
853
  :param location: Location, Location for the newly added object
805
854
  :type location: collections.abc.Sequence[float] | mathutils.Vector | None
806
855
  :param rotation: Rotation, Rotation for the newly added object
@@ -818,8 +867,49 @@ def data_instance_add(
818
867
  *,
819
868
  name: str = "",
820
869
  session_uid: int | None = 0,
821
- type: str | None = "ACTION",
822
- align: str | None = "WORLD",
870
+ type: typing.Literal[
871
+ "ACTION",
872
+ "ARMATURE",
873
+ "BRUSH",
874
+ "CACHEFILE",
875
+ "CAMERA",
876
+ "COLLECTION",
877
+ "CURVE",
878
+ "CURVES",
879
+ "FONT",
880
+ "GREASEPENCIL",
881
+ "GREASEPENCIL_V3",
882
+ "IMAGE",
883
+ "KEY",
884
+ "LATTICE",
885
+ "LIBRARY",
886
+ "LIGHT",
887
+ "LIGHT_PROBE",
888
+ "LINESTYLE",
889
+ "MASK",
890
+ "MATERIAL",
891
+ "MESH",
892
+ "META",
893
+ "MOVIECLIP",
894
+ "NODETREE",
895
+ "OBJECT",
896
+ "PAINTCURVE",
897
+ "PALETTE",
898
+ "PARTICLE",
899
+ "POINTCLOUD",
900
+ "SCENE",
901
+ "SCREEN",
902
+ "SOUND",
903
+ "SPEAKER",
904
+ "TEXT",
905
+ "TEXTURE",
906
+ "VOLUME",
907
+ "WINDOWMANAGER",
908
+ "WORKSPACE",
909
+ "WORLD",
910
+ ]
911
+ | None = "ACTION",
912
+ align: typing.Literal["WORLD", "VIEW", "CURSOR"] | None = "WORLD",
823
913
  location: collections.abc.Sequence[float] | mathutils.Vector | None = (
824
914
  0.0,
825
915
  0.0,
@@ -844,7 +934,7 @@ def data_instance_add(
844
934
  :param session_uid: Session UID, Session UID of the data-block to use by the operator
845
935
  :type session_uid: int | None
846
936
  :param type: Type
847
- :type type: str | None
937
+ :type type: typing.Literal['ACTION', 'ARMATURE', 'BRUSH', 'CACHEFILE', 'CAMERA', 'COLLECTION', 'CURVE', 'CURVES', 'FONT', 'GREASEPENCIL', 'GREASEPENCIL_V3', 'IMAGE', 'KEY', 'LATTICE', 'LIBRARY', 'LIGHT', 'LIGHT_PROBE', 'LINESTYLE', 'MASK', 'MATERIAL', 'MESH', 'META', 'MOVIECLIP', 'NODETREE', 'OBJECT', 'PAINTCURVE', 'PALETTE', 'PARTICLE', 'POINTCLOUD', 'SCENE', 'SCREEN', 'SOUND', 'SPEAKER', 'TEXT', 'TEXTURE', 'VOLUME', 'WINDOWMANAGER', 'WORKSPACE', 'WORLD'] | None
848
938
  :param align: Align, The alignment of the new object
849
939
 
850
940
  WORLD
@@ -855,7 +945,7 @@ def data_instance_add(
855
945
 
856
946
  CURSOR
857
947
  3D Cursor -- Use the 3D cursor orientation for the new object.
858
- :type align: str | None
948
+ :type align: typing.Literal['WORLD','VIEW','CURSOR'] | None
859
949
  :param location: Location, Location for the newly added object
860
950
  :type location: collections.abc.Sequence[float] | mathutils.Vector | None
861
951
  :param rotation: Rotation, Rotation for the newly added object
@@ -877,21 +967,61 @@ def data_transfer(
877
967
  *,
878
968
  use_reverse_transfer: bool | None = False,
879
969
  use_freeze: bool | None = False,
880
- data_type: str | None = "",
970
+ data_type: typing.Literal[
971
+ "VGROUP_WEIGHTS",
972
+ "BEVEL_WEIGHT_VERT",
973
+ "COLOR_VERTEX",
974
+ "SHARP_EDGE",
975
+ "SEAM",
976
+ "CREASE",
977
+ "BEVEL_WEIGHT_EDGE",
978
+ "FREESTYLE_EDGE",
979
+ "CUSTOM_NORMAL",
980
+ "COLOR_CORNER",
981
+ "UV",
982
+ "SMOOTH",
983
+ "FREESTYLE_FACE",
984
+ ]
985
+ | None = "",
881
986
  use_create: bool | None = True,
882
- vert_mapping: str | None = "NEAREST",
883
- edge_mapping: str | None = "NEAREST",
884
- loop_mapping: str | None = "NEAREST_POLYNOR",
885
- poly_mapping: str | None = "NEAREST",
987
+ vert_mapping: typing.Literal[
988
+ "TOPOLOGY",
989
+ "NEAREST",
990
+ "EDGE_NEAREST",
991
+ "EDGEINTERP_NEAREST",
992
+ "POLY_NEAREST",
993
+ "POLYINTERP_NEAREST",
994
+ "POLYINTERP_VNORPROJ",
995
+ ]
996
+ | None = "NEAREST",
997
+ edge_mapping: typing.Literal[
998
+ "TOPOLOGY", "VERT_NEAREST", "NEAREST", "POLY_NEAREST", "EDGEINTERP_VNORPROJ"
999
+ ]
1000
+ | None = "NEAREST",
1001
+ loop_mapping: typing.Literal[
1002
+ "TOPOLOGY",
1003
+ "NEAREST_NORMAL",
1004
+ "NEAREST_POLYNOR",
1005
+ "NEAREST_POLY",
1006
+ "POLYINTERP_NEAREST",
1007
+ "POLYINTERP_LNORPROJ",
1008
+ ]
1009
+ | None = "NEAREST_POLYNOR",
1010
+ poly_mapping: typing.Literal["TOPOLOGY", "NEAREST", "NORMAL", "POLYINTERP_PNORPROJ"]
1011
+ | None = "NEAREST",
886
1012
  use_auto_transform: bool | None = False,
887
1013
  use_object_transform: bool | None = True,
888
1014
  use_max_distance: bool | None = False,
889
1015
  max_distance: float | None = 1.0,
890
1016
  ray_radius: float | None = 0.0,
891
1017
  islands_precision: float | None = 0.1,
892
- layers_select_src: str | None = "ACTIVE",
893
- layers_select_dst: str | None = "ACTIVE",
894
- mix_mode: str | None = "REPLACE",
1018
+ layers_select_src: typing.Literal["ACTIVE", "ALL", "BONE_SELECT", "BONE_DEFORM"]
1019
+ | None = "ACTIVE",
1020
+ layers_select_dst: typing.Literal["ACTIVE", "NAME", "INDEX"] | None = "ACTIVE",
1021
+ mix_mode: typing.Literal[
1022
+ "REPLACE", "ABOVE_THRESHOLD", "BELOW_THRESHOLD", "MIX", "ADD", "SUB", "MUL"
1023
+ ]
1024
+ | None = "REPLACE",
895
1025
  mix_factor: float | None = 1.0,
896
1026
  ):
897
1027
  """Transfer data layer(s) (weights, edge sharp, etc.) from active to selected meshes
@@ -943,17 +1073,17 @@ def data_transfer(
943
1073
 
944
1074
  FREESTYLE_FACE
945
1075
  Freestyle Mark -- Transfer Freestyle face mark.
946
- :type data_type: str | None
1076
+ :type data_type: typing.Literal['VGROUP_WEIGHTS','BEVEL_WEIGHT_VERT','COLOR_VERTEX','SHARP_EDGE','SEAM','CREASE','BEVEL_WEIGHT_EDGE','FREESTYLE_EDGE','CUSTOM_NORMAL','COLOR_CORNER','UV','SMOOTH','FREESTYLE_FACE'] | None
947
1077
  :param use_create: Create Data, Add data layers on destination meshes if needed
948
1078
  :type use_create: bool | None
949
1079
  :param vert_mapping: Vertex Mapping, Method used to map source vertices to destination ones
950
- :type vert_mapping: str | None
1080
+ :type vert_mapping: typing.Literal['TOPOLOGY', 'NEAREST', 'EDGE_NEAREST', 'EDGEINTERP_NEAREST', 'POLY_NEAREST', 'POLYINTERP_NEAREST', 'POLYINTERP_VNORPROJ'] | None
951
1081
  :param edge_mapping: Edge Mapping, Method used to map source edges to destination ones
952
- :type edge_mapping: str | None
1082
+ :type edge_mapping: typing.Literal['TOPOLOGY', 'VERT_NEAREST', 'NEAREST', 'POLY_NEAREST', 'EDGEINTERP_VNORPROJ'] | None
953
1083
  :param loop_mapping: Face Corner Mapping, Method used to map source faces' corners to destination ones
954
- :type loop_mapping: str | None
1084
+ :type loop_mapping: typing.Literal['TOPOLOGY', 'NEAREST_NORMAL', 'NEAREST_POLYNOR', 'NEAREST_POLY', 'POLYINTERP_NEAREST', 'POLYINTERP_LNORPROJ'] | None
955
1085
  :param poly_mapping: Face Mapping, Method used to map source faces to destination ones
956
- :type poly_mapping: str | None
1086
+ :type poly_mapping: typing.Literal['TOPOLOGY', 'NEAREST', 'NORMAL', 'POLYINTERP_PNORPROJ'] | None
957
1087
  :param use_auto_transform: Auto Transform, Automatically compute transformation to get the best possible match between source and destination meshes.Warning: Results will never be as good as manual matching of objects
958
1088
  :type use_auto_transform: bool | None
959
1089
  :param use_object_transform: Object Transform, Evaluate source and destination meshes in global space
@@ -967,11 +1097,11 @@ def data_transfer(
967
1097
  :param islands_precision: Islands Precision, Factor controlling precision of islands handling (the higher, the better the results)
968
1098
  :type islands_precision: float | None
969
1099
  :param layers_select_src: Source Layers Selection, Which layers to transfer, in case of multi-layers types
970
- :type layers_select_src: str | None
1100
+ :type layers_select_src: typing.Literal['ACTIVE', 'ALL', 'BONE_SELECT', 'BONE_DEFORM'] | None
971
1101
  :param layers_select_dst: Destination Layers Matching, How to match source and destination layers
972
- :type layers_select_dst: str | None
1102
+ :type layers_select_dst: typing.Literal['ACTIVE', 'NAME', 'INDEX'] | None
973
1103
  :param mix_mode: Mix Mode, How to affect destination elements with source values
974
- :type mix_mode: str | None
1104
+ :type mix_mode: typing.Literal['REPLACE', 'ABOVE_THRESHOLD', 'BELOW_THRESHOLD', 'MIX', 'ADD', 'SUB', 'MUL'] | None
975
1105
  :param mix_factor: Mix Factor, Factor to use when applying data to destination (exact behavior depends on mix mode)
976
1106
  :type mix_factor: float | None
977
1107
  """
@@ -984,10 +1114,26 @@ def datalayout_transfer(
984
1114
  undo: bool | None = None,
985
1115
  *,
986
1116
  modifier: str = "",
987
- data_type: str | None = "",
1117
+ data_type: typing.Literal[
1118
+ "VGROUP_WEIGHTS",
1119
+ "BEVEL_WEIGHT_VERT",
1120
+ "COLOR_VERTEX",
1121
+ "SHARP_EDGE",
1122
+ "SEAM",
1123
+ "CREASE",
1124
+ "BEVEL_WEIGHT_EDGE",
1125
+ "FREESTYLE_EDGE",
1126
+ "CUSTOM_NORMAL",
1127
+ "COLOR_CORNER",
1128
+ "UV",
1129
+ "SMOOTH",
1130
+ "FREESTYLE_FACE",
1131
+ ]
1132
+ | None = "",
988
1133
  use_delete: bool | None = False,
989
- layers_select_src: str | None = "ACTIVE",
990
- layers_select_dst: str | None = "ACTIVE",
1134
+ layers_select_src: typing.Literal["ACTIVE", "ALL", "BONE_SELECT", "BONE_DEFORM"]
1135
+ | None = "ACTIVE",
1136
+ layers_select_dst: typing.Literal["ACTIVE", "NAME", "INDEX"] | None = "ACTIVE",
991
1137
  ):
992
1138
  """Transfer layout of data layer(s) from active to selected meshes
993
1139
 
@@ -1036,13 +1182,13 @@ def datalayout_transfer(
1036
1182
 
1037
1183
  FREESTYLE_FACE
1038
1184
  Freestyle Mark -- Transfer Freestyle face mark.
1039
- :type data_type: str | None
1185
+ :type data_type: typing.Literal['VGROUP_WEIGHTS','BEVEL_WEIGHT_VERT','COLOR_VERTEX','SHARP_EDGE','SEAM','CREASE','BEVEL_WEIGHT_EDGE','FREESTYLE_EDGE','CUSTOM_NORMAL','COLOR_CORNER','UV','SMOOTH','FREESTYLE_FACE'] | None
1040
1186
  :param use_delete: Exact Match, Also delete some data layers from destination if necessary, so that it matches exactly source
1041
1187
  :type use_delete: bool | None
1042
1188
  :param layers_select_src: Source Layers Selection, Which layers to transfer, in case of multi-layers types
1043
- :type layers_select_src: str | None
1189
+ :type layers_select_src: typing.Literal['ACTIVE', 'ALL', 'BONE_SELECT', 'BONE_DEFORM'] | None
1044
1190
  :param layers_select_dst: Destination Layers Matching, How to match source and destination layers
1045
- :type layers_select_dst: str | None
1191
+ :type layers_select_dst: typing.Literal['ACTIVE', 'NAME', 'INDEX'] | None
1046
1192
  """
1047
1193
 
1048
1194
  ...
@@ -1116,7 +1262,42 @@ def duplicate(
1116
1262
  undo: bool | None = None,
1117
1263
  *,
1118
1264
  linked: bool | None = False,
1119
- mode: str | None = "TRANSLATION",
1265
+ mode: typing.Literal[
1266
+ "INIT",
1267
+ "DUMMY",
1268
+ "TRANSLATION",
1269
+ "ROTATION",
1270
+ "RESIZE",
1271
+ "SKIN_RESIZE",
1272
+ "TOSPHERE",
1273
+ "SHEAR",
1274
+ "BEND",
1275
+ "SHRINKFATTEN",
1276
+ "TILT",
1277
+ "TRACKBALL",
1278
+ "PUSHPULL",
1279
+ "CREASE",
1280
+ "VERTEX_CREASE",
1281
+ "MIRROR",
1282
+ "BONE_SIZE",
1283
+ "BONE_ENVELOPE",
1284
+ "BONE_ENVELOPE_DIST",
1285
+ "CURVE_SHRINKFATTEN",
1286
+ "MASK_SHRINKFATTEN",
1287
+ "GPENCIL_SHRINKFATTEN",
1288
+ "BONE_ROLL",
1289
+ "TIME_TRANSLATE",
1290
+ "TIME_SLIDE",
1291
+ "TIME_SCALE",
1292
+ "TIME_EXTEND",
1293
+ "BAKE_TIME",
1294
+ "BWEIGHT",
1295
+ "ALIGN",
1296
+ "EDGESLIDE",
1297
+ "SEQSLIDE",
1298
+ "GPENCIL_OPACITY",
1299
+ ]
1300
+ | None = "TRANSLATION",
1120
1301
  ):
1121
1302
  """Duplicate selected objects
1122
1303
 
@@ -1126,7 +1307,7 @@ def duplicate(
1126
1307
  :param linked: Linked, Duplicate object but not object data, linking to the original data
1127
1308
  :type linked: bool | None
1128
1309
  :param mode: Mode
1129
- :type mode: str | None
1310
+ :type mode: typing.Literal['INIT', 'DUMMY', 'TRANSLATION', 'ROTATION', 'RESIZE', 'SKIN_RESIZE', 'TOSPHERE', 'SHEAR', 'BEND', 'SHRINKFATTEN', 'TILT', 'TRACKBALL', 'PUSHPULL', 'CREASE', 'VERTEX_CREASE', 'MIRROR', 'BONE_SIZE', 'BONE_ENVELOPE', 'BONE_ENVELOPE_DIST', 'CURVE_SHRINKFATTEN', 'MASK_SHRINKFATTEN', 'GPENCIL_SHRINKFATTEN', 'BONE_ROLL', 'TIME_TRANSLATE', 'TIME_SLIDE', 'TIME_SCALE', 'TIME_EXTEND', 'BAKE_TIME', 'BWEIGHT', 'ALIGN', 'EDGESLIDE', 'SEQSLIDE', 'GPENCIL_OPACITY'] | None
1130
1311
  """
1131
1312
 
1132
1313
  ...
@@ -1213,10 +1394,25 @@ def effector_add(
1213
1394
  execution_context: int | str | None = None,
1214
1395
  undo: bool | None = None,
1215
1396
  *,
1216
- type: str | None = "FORCE",
1397
+ type: typing.Literal[
1398
+ "FORCE",
1399
+ "WIND",
1400
+ "VORTEX",
1401
+ "MAGNET",
1402
+ "HARMONIC",
1403
+ "CHARGE",
1404
+ "LENNARDJ",
1405
+ "TEXTURE",
1406
+ "GUIDE",
1407
+ "BOID",
1408
+ "TURBULENCE",
1409
+ "DRAG",
1410
+ "FLUID",
1411
+ ]
1412
+ | None = "FORCE",
1217
1413
  radius: float | None = 1.0,
1218
1414
  enter_editmode: bool | None = False,
1219
- align: str | None = "WORLD",
1415
+ align: typing.Literal["WORLD", "VIEW", "CURSOR"] | None = "WORLD",
1220
1416
  location: collections.abc.Sequence[float] | mathutils.Vector | None = (
1221
1417
  0.0,
1222
1418
  0.0,
@@ -1235,7 +1431,7 @@ def effector_add(
1235
1431
  :type execution_context: int | str | None
1236
1432
  :type undo: bool | None
1237
1433
  :param type: Type
1238
- :type type: str | None
1434
+ :type type: typing.Literal['FORCE','WIND','VORTEX','MAGNET','HARMONIC','CHARGE','LENNARDJ','TEXTURE','GUIDE','BOID','TURBULENCE','DRAG','FLUID'] | None
1239
1435
  :param radius: Radius
1240
1436
  :type radius: float | None
1241
1437
  :param enter_editmode: Enter Edit Mode, Enter edit mode when adding this object
@@ -1250,7 +1446,7 @@ def effector_add(
1250
1446
 
1251
1447
  CURSOR
1252
1448
  3D Cursor -- Use the 3D cursor orientation for the new object.
1253
- :type align: str | None
1449
+ :type align: typing.Literal['WORLD','VIEW','CURSOR'] | None
1254
1450
  :param location: Location, Location for the newly added object
1255
1451
  :type location: collections.abc.Sequence[float] | mathutils.Vector | None
1256
1452
  :param rotation: Rotation, Rotation for the newly added object
@@ -1266,9 +1462,19 @@ def empty_add(
1266
1462
  execution_context: int | str | None = None,
1267
1463
  undo: bool | None = None,
1268
1464
  *,
1269
- type: str | None = "PLAIN_AXES",
1465
+ type: typing.Literal[
1466
+ "PLAIN_AXES",
1467
+ "ARROWS",
1468
+ "SINGLE_ARROW",
1469
+ "CIRCLE",
1470
+ "CUBE",
1471
+ "SPHERE",
1472
+ "CONE",
1473
+ "IMAGE",
1474
+ ]
1475
+ | None = "PLAIN_AXES",
1270
1476
  radius: float | None = 1.0,
1271
- align: str | None = "WORLD",
1477
+ align: typing.Literal["WORLD", "VIEW", "CURSOR"] | None = "WORLD",
1272
1478
  location: collections.abc.Sequence[float] | mathutils.Vector | None = (
1273
1479
  0.0,
1274
1480
  0.0,
@@ -1287,7 +1493,7 @@ def empty_add(
1287
1493
  :type execution_context: int | str | None
1288
1494
  :type undo: bool | None
1289
1495
  :param type: Type
1290
- :type type: str | None
1496
+ :type type: typing.Literal['PLAIN_AXES', 'ARROWS', 'SINGLE_ARROW', 'CIRCLE', 'CUBE', 'SPHERE', 'CONE', 'IMAGE'] | None
1291
1497
  :param radius: Radius
1292
1498
  :type radius: float | None
1293
1499
  :param align: Align, The alignment of the new object
@@ -1300,7 +1506,7 @@ def empty_add(
1300
1506
 
1301
1507
  CURSOR
1302
1508
  3D Cursor -- Use the 3D cursor orientation for the new object.
1303
- :type align: str | None
1509
+ :type align: typing.Literal['WORLD','VIEW','CURSOR'] | None
1304
1510
  :param location: Location, Location for the newly added object
1305
1511
  :type location: collections.abc.Sequence[float] | mathutils.Vector | None
1306
1512
  :param rotation: Rotation, Rotation for the newly added object
@@ -1340,11 +1546,21 @@ def empty_image_add(
1340
1546
  relative_path: bool | None = True,
1341
1547
  show_multiview: bool | None = False,
1342
1548
  use_multiview: bool | None = False,
1343
- display_type: str | None = "DEFAULT",
1344
- sort_method: str | None = "",
1549
+ display_type: typing.Literal[
1550
+ "DEFAULT", "LIST_VERTICAL", "LIST_HORIZONTAL", "THUMBNAIL"
1551
+ ]
1552
+ | None = "DEFAULT",
1553
+ sort_method: typing.Literal[
1554
+ "DEFAULT",
1555
+ "FILE_SORT_ALPHA",
1556
+ "FILE_SORT_EXTENSION",
1557
+ "FILE_SORT_TIME",
1558
+ "FILE_SORT_SIZE",
1559
+ ]
1560
+ | None = "",
1345
1561
  name: str = "",
1346
1562
  session_uid: int | None = 0,
1347
- align: str | None = "WORLD",
1563
+ align: typing.Literal["WORLD", "VIEW", "CURSOR"] | None = "WORLD",
1348
1564
  location: collections.abc.Sequence[float] | mathutils.Vector | None = (
1349
1565
  0.0,
1350
1566
  0.0,
@@ -1424,7 +1640,7 @@ def empty_image_add(
1424
1640
 
1425
1641
  THUMBNAIL
1426
1642
  Thumbnails -- Display files as thumbnails.
1427
- :type display_type: str | None
1643
+ :type display_type: typing.Literal['DEFAULT','LIST_VERTICAL','LIST_HORIZONTAL','THUMBNAIL'] | None
1428
1644
  :param sort_method: File sorting mode
1429
1645
 
1430
1646
  DEFAULT
@@ -1441,7 +1657,7 @@ def empty_image_add(
1441
1657
 
1442
1658
  FILE_SORT_SIZE
1443
1659
  Size -- Sort files by size.
1444
- :type sort_method: str | None
1660
+ :type sort_method: typing.Literal['DEFAULT','FILE_SORT_ALPHA','FILE_SORT_EXTENSION','FILE_SORT_TIME','FILE_SORT_SIZE'] | None
1445
1661
  :param name: Name, Name of the data-block to use by the operator
1446
1662
  :type name: str
1447
1663
  :param session_uid: Session UID, Session UID of the data-block to use by the operator
@@ -1456,7 +1672,7 @@ def empty_image_add(
1456
1672
 
1457
1673
  CURSOR
1458
1674
  3D Cursor -- Use the 3D cursor orientation for the new object.
1459
- :type align: str | None
1675
+ :type align: typing.Literal['WORLD','VIEW','CURSOR'] | None
1460
1676
  :param location: Location, Location for the newly added object
1461
1677
  :type location: collections.abc.Sequence[float] | mathutils.Vector | None
1462
1678
  :param rotation: Rotation, Rotation for the newly added object
@@ -1608,7 +1824,7 @@ def gpencil_add(
1608
1824
  undo: bool | None = None,
1609
1825
  *,
1610
1826
  radius: float | None = 1.0,
1611
- align: str | None = "WORLD",
1827
+ align: typing.Literal["WORLD", "VIEW", "CURSOR"] | None = "WORLD",
1612
1828
  location: collections.abc.Sequence[float] | mathutils.Vector | None = (
1613
1829
  0.0,
1614
1830
  0.0,
@@ -1620,11 +1836,19 @@ def gpencil_add(
1620
1836
  0.0,
1621
1837
  ),
1622
1838
  scale: collections.abc.Sequence[float] | mathutils.Vector | None = (0.0, 0.0, 0.0),
1623
- type: str | None = "EMPTY",
1839
+ type: typing.Literal[
1840
+ "EMPTY",
1841
+ "STROKE",
1842
+ "MONKEY",
1843
+ "LINEART_SCENE",
1844
+ "LINEART_COLLECTION",
1845
+ "LINEART_OBJECT",
1846
+ ]
1847
+ | None = "EMPTY",
1624
1848
  use_in_front: bool | None = True,
1625
1849
  stroke_depth_offset: float | None = 0.05,
1626
1850
  use_lights: bool | None = False,
1627
- stroke_depth_order: str | None = "3D",
1851
+ stroke_depth_order: typing.Literal["2D", "3D"] | None = "3D",
1628
1852
  ):
1629
1853
  """Add a Grease Pencil object to the scene
1630
1854
 
@@ -1643,7 +1867,7 @@ def gpencil_add(
1643
1867
 
1644
1868
  CURSOR
1645
1869
  3D Cursor -- Use the 3D cursor orientation for the new object.
1646
- :type align: str | None
1870
+ :type align: typing.Literal['WORLD','VIEW','CURSOR'] | None
1647
1871
  :param location: Location, Location for the newly added object
1648
1872
  :type location: collections.abc.Sequence[float] | mathutils.Vector | None
1649
1873
  :param rotation: Rotation, Rotation for the newly added object
@@ -1651,7 +1875,7 @@ def gpencil_add(
1651
1875
  :param scale: Scale, Scale for the newly added object
1652
1876
  :type scale: collections.abc.Sequence[float] | mathutils.Vector | None
1653
1877
  :param type: Type
1654
- :type type: str | None
1878
+ :type type: typing.Literal['EMPTY', 'STROKE', 'MONKEY', 'LINEART_SCENE', 'LINEART_COLLECTION', 'LINEART_OBJECT'] | None
1655
1879
  :param use_in_front: Show In Front, Show Line Art grease pencil in front of everything
1656
1880
  :type use_in_front: bool | None
1657
1881
  :param stroke_depth_offset: Stroke Offset, Stroke offset for the Line Art modifier
@@ -1665,7 +1889,7 @@ def gpencil_add(
1665
1889
 
1666
1890
  3D
1667
1891
  3D Location -- Display strokes using real 3D position in 3D space.
1668
- :type stroke_depth_order: str | None
1892
+ :type stroke_depth_order: typing.Literal['2D','3D'] | None
1669
1893
  """
1670
1894
 
1671
1895
  ...
@@ -1675,13 +1899,21 @@ def grease_pencil_add(
1675
1899
  execution_context: int | str | None = None,
1676
1900
  undo: bool | None = None,
1677
1901
  *,
1678
- type: str | None = "EMPTY",
1902
+ type: typing.Literal[
1903
+ "EMPTY",
1904
+ "STROKE",
1905
+ "MONKEY",
1906
+ "LINEART_SCENE",
1907
+ "LINEART_COLLECTION",
1908
+ "LINEART_OBJECT",
1909
+ ]
1910
+ | None = "EMPTY",
1679
1911
  use_in_front: bool | None = True,
1680
1912
  stroke_depth_offset: float | None = 0.05,
1681
1913
  use_lights: bool | None = False,
1682
- stroke_depth_order: str | None = "3D",
1914
+ stroke_depth_order: typing.Literal["2D", "3D"] | None = "3D",
1683
1915
  radius: float | None = 1.0,
1684
- align: str | None = "WORLD",
1916
+ align: typing.Literal["WORLD", "VIEW", "CURSOR"] | None = "WORLD",
1685
1917
  location: collections.abc.Sequence[float] | mathutils.Vector | None = (
1686
1918
  0.0,
1687
1919
  0.0,
@@ -1700,7 +1932,7 @@ def grease_pencil_add(
1700
1932
  :type execution_context: int | str | None
1701
1933
  :type undo: bool | None
1702
1934
  :param type: Type
1703
- :type type: str | None
1935
+ :type type: typing.Literal['EMPTY', 'STROKE', 'MONKEY', 'LINEART_SCENE', 'LINEART_COLLECTION', 'LINEART_OBJECT'] | None
1704
1936
  :param use_in_front: Show In Front, Show Line Art grease pencil in front of everything
1705
1937
  :type use_in_front: bool | None
1706
1938
  :param stroke_depth_offset: Stroke Offset, Stroke offset for the Line Art modifier
@@ -1714,7 +1946,7 @@ def grease_pencil_add(
1714
1946
 
1715
1947
  3D
1716
1948
  3D Location -- Display strokes using real 3D position in 3D space.
1717
- :type stroke_depth_order: str | None
1949
+ :type stroke_depth_order: typing.Literal['2D','3D'] | None
1718
1950
  :param radius: Radius
1719
1951
  :type radius: float | None
1720
1952
  :param align: Align, The alignment of the new object
@@ -1727,7 +1959,7 @@ def grease_pencil_add(
1727
1959
 
1728
1960
  CURSOR
1729
1961
  3D Cursor -- Use the 3D cursor orientation for the new object.
1730
- :type align: str | None
1962
+ :type align: typing.Literal['WORLD','VIEW','CURSOR'] | None
1731
1963
  :param location: Location, Location for the newly added object
1732
1964
  :type location: collections.abc.Sequence[float] | mathutils.Vector | None
1733
1965
  :param rotation: Rotation, Rotation for the newly added object
@@ -1762,7 +1994,7 @@ def grease_pencil_dash_modifier_segment_move(
1762
1994
  undo: bool | None = None,
1763
1995
  *,
1764
1996
  modifier: str = "",
1765
- type: str | None = "UP",
1997
+ type: typing.Literal["UP", "DOWN"] | None = "UP",
1766
1998
  ):
1767
1999
  """Move the active dash segment up or down
1768
2000
 
@@ -1772,7 +2004,7 @@ def grease_pencil_dash_modifier_segment_move(
1772
2004
  :param modifier: Modifier, Name of the modifier to edit
1773
2005
  :type modifier: str
1774
2006
  :param type: Type
1775
- :type type: str | None
2007
+ :type type: typing.Literal['UP','DOWN'] | None
1776
2008
  """
1777
2009
 
1778
2010
  ...
@@ -1822,7 +2054,7 @@ def grease_pencil_time_modifier_segment_move(
1822
2054
  undo: bool | None = None,
1823
2055
  *,
1824
2056
  modifier: str = "",
1825
- type: str | None = "UP",
2057
+ type: typing.Literal["UP", "DOWN"] | None = "UP",
1826
2058
  ):
1827
2059
  """Move the active time segment up or down
1828
2060
 
@@ -1832,7 +2064,7 @@ def grease_pencil_time_modifier_segment_move(
1832
2064
  :param modifier: Modifier, Name of the modifier to edit
1833
2065
  :type modifier: str
1834
2066
  :param type: Type
1835
- :type type: str | None
2067
+ :type type: typing.Literal['UP','DOWN'] | None
1836
2068
  """
1837
2069
 
1838
2070
  ...
@@ -2175,9 +2407,9 @@ def light_add(
2175
2407
  execution_context: int | str | None = None,
2176
2408
  undo: bool | None = None,
2177
2409
  *,
2178
- type: str | None = "POINT",
2410
+ type: typing.Literal["POINT", "SUN", "SPOT", "AREA"] | None = "POINT",
2179
2411
  radius: float | None = 1.0,
2180
- align: str | None = "WORLD",
2412
+ align: typing.Literal["WORLD", "VIEW", "CURSOR"] | None = "WORLD",
2181
2413
  location: collections.abc.Sequence[float] | mathutils.Vector | None = (
2182
2414
  0.0,
2183
2415
  0.0,
@@ -2196,7 +2428,7 @@ def light_add(
2196
2428
  :type execution_context: int | str | None
2197
2429
  :type undo: bool | None
2198
2430
  :param type: Type
2199
- :type type: str | None
2431
+ :type type: typing.Literal['POINT', 'SUN', 'SPOT', 'AREA'] | None
2200
2432
  :param radius: Radius
2201
2433
  :type radius: float | None
2202
2434
  :param align: Align, The alignment of the new object
@@ -2209,7 +2441,7 @@ def light_add(
2209
2441
 
2210
2442
  CURSOR
2211
2443
  3D Cursor -- Use the 3D cursor orientation for the new object.
2212
- :type align: str | None
2444
+ :type align: typing.Literal['WORLD','VIEW','CURSOR'] | None
2213
2445
  :param location: Location, Location for the newly added object
2214
2446
  :type location: collections.abc.Sequence[float] | mathutils.Vector | None
2215
2447
  :param rotation: Rotation, Rotation for the newly added object
@@ -2239,7 +2471,7 @@ def light_linking_blockers_link(
2239
2471
  execution_context: int | str | None = None,
2240
2472
  undo: bool | None = None,
2241
2473
  *,
2242
- link_state: str | None = "INCLUDE",
2474
+ link_state: typing.Literal["INCLUDE", "EXCLUDE"] | None = "INCLUDE",
2243
2475
  ):
2244
2476
  """Light link selected blockers to the active emitter object
2245
2477
 
@@ -2253,7 +2485,7 @@ def light_linking_blockers_link(
2253
2485
 
2254
2486
  EXCLUDE
2255
2487
  Exclude -- Exclude selected blockers from casting shadows from the active emitter.
2256
- :type link_state: str | None
2488
+ :type link_state: typing.Literal['INCLUDE','EXCLUDE'] | None
2257
2489
  """
2258
2490
 
2259
2491
  ...
@@ -2291,7 +2523,7 @@ def light_linking_receivers_link(
2291
2523
  execution_context: int | str | None = None,
2292
2524
  undo: bool | None = None,
2293
2525
  *,
2294
- link_state: str | None = "INCLUDE",
2526
+ link_state: typing.Literal["INCLUDE", "EXCLUDE"] | None = "INCLUDE",
2295
2527
  ):
2296
2528
  """Light link selected receivers to the active emitter object
2297
2529
 
@@ -2305,7 +2537,7 @@ def light_linking_receivers_link(
2305
2537
 
2306
2538
  EXCLUDE
2307
2539
  Exclude -- Exclude selected receivers from receiving light from the active emitter.
2308
- :type link_state: str | None
2540
+ :type link_state: typing.Literal['INCLUDE','EXCLUDE'] | None
2309
2541
  """
2310
2542
 
2311
2543
  ...
@@ -2343,10 +2575,10 @@ def lightprobe_add(
2343
2575
  execution_context: int | str | None = None,
2344
2576
  undo: bool | None = None,
2345
2577
  *,
2346
- type: str | None = "SPHERE",
2578
+ type: typing.Literal["SPHERE", "PLANE", "VOLUME"] | None = "SPHERE",
2347
2579
  radius: float | None = 1.0,
2348
2580
  enter_editmode: bool | None = False,
2349
- align: str | None = "WORLD",
2581
+ align: typing.Literal["WORLD", "VIEW", "CURSOR"] | None = "WORLD",
2350
2582
  location: collections.abc.Sequence[float] | mathutils.Vector | None = (
2351
2583
  0.0,
2352
2584
  0.0,
@@ -2374,7 +2606,7 @@ def lightprobe_add(
2374
2606
 
2375
2607
  VOLUME
2376
2608
  Volume -- Light probe that captures low frequency lighting inside a volume.
2377
- :type type: str | None
2609
+ :type type: typing.Literal['SPHERE','PLANE','VOLUME'] | None
2378
2610
  :param radius: Radius
2379
2611
  :type radius: float | None
2380
2612
  :param enter_editmode: Enter Edit Mode, Enter edit mode when adding this object
@@ -2389,7 +2621,7 @@ def lightprobe_add(
2389
2621
 
2390
2622
  CURSOR
2391
2623
  3D Cursor -- Use the 3D cursor orientation for the new object.
2392
- :type align: str | None
2624
+ :type align: typing.Literal['WORLD','VIEW','CURSOR'] | None
2393
2625
  :param location: Location, Location for the newly added object
2394
2626
  :type location: collections.abc.Sequence[float] | mathutils.Vector | None
2395
2627
  :param rotation: Rotation, Rotation for the newly added object
@@ -2405,7 +2637,7 @@ def lightprobe_cache_bake(
2405
2637
  execution_context: int | str | None = None,
2406
2638
  undo: bool | None = None,
2407
2639
  *,
2408
- subset: str | None = "ALL",
2640
+ subset: typing.Literal["ALL", "SELECTED", "ACTIVE"] | None = "ALL",
2409
2641
  ):
2410
2642
  """Bake irradiance volume light cache
2411
2643
 
@@ -2422,7 +2654,7 @@ def lightprobe_cache_bake(
2422
2654
 
2423
2655
  ACTIVE
2424
2656
  Active Only -- Only bake the active light probe volume.
2425
- :type subset: str | None
2657
+ :type subset: typing.Literal['ALL','SELECTED','ACTIVE'] | None
2426
2658
  """
2427
2659
 
2428
2660
  ...
@@ -2432,7 +2664,7 @@ def lightprobe_cache_free(
2432
2664
  execution_context: int | str | None = None,
2433
2665
  undo: bool | None = None,
2434
2666
  *,
2435
- subset: str | None = "SELECTED",
2667
+ subset: typing.Literal["ALL", "SELECTED", "ACTIVE"] | None = "SELECTED",
2436
2668
  ):
2437
2669
  """Delete cached indirect lighting
2438
2670
 
@@ -2449,7 +2681,7 @@ def lightprobe_cache_free(
2449
2681
 
2450
2682
  ACTIVE
2451
2683
  Active Only -- Only delete the active light probe's baked lighting data.
2452
- :type subset: str | None
2684
+ :type subset: typing.Literal['ALL','SELECTED','ACTIVE'] | None
2453
2685
  """
2454
2686
 
2455
2687
  ...
@@ -2551,7 +2783,17 @@ def make_links_data(
2551
2783
  execution_context: int | str | None = None,
2552
2784
  undo: bool | None = None,
2553
2785
  *,
2554
- type: str | None = "OBDATA",
2786
+ type: typing.Literal[
2787
+ "OBDATA",
2788
+ "MATERIAL",
2789
+ "ANIMATION",
2790
+ "GROUPS",
2791
+ "DUPLICOLLECTION",
2792
+ "FONTS",
2793
+ "MODIFIERS",
2794
+ "EFFECTS",
2795
+ ]
2796
+ | None = "OBDATA",
2555
2797
  ):
2556
2798
  """Transfer data from active object to selected objects
2557
2799
 
@@ -2583,7 +2825,7 @@ def make_links_data(
2583
2825
 
2584
2826
  EFFECTS
2585
2827
  Copy Grease Pencil Effects -- Replace Grease Pencil Effects.
2586
- :type type: str | None
2828
+ :type type: typing.Literal['OBDATA','MATERIAL','ANIMATION','GROUPS','DUPLICOLLECTION','FONTS','MODIFIERS','EFFECTS'] | None
2587
2829
  """
2588
2830
 
2589
2831
  ...
@@ -2611,7 +2853,10 @@ def make_local(
2611
2853
  execution_context: int | str | None = None,
2612
2854
  undo: bool | None = None,
2613
2855
  *,
2614
- type: str | None = "SELECT_OBJECT",
2856
+ type: typing.Literal[
2857
+ "SELECT_OBJECT", "SELECT_OBDATA", "SELECT_OBDATA_MATERIAL", "ALL"
2858
+ ]
2859
+ | None = "SELECT_OBJECT",
2615
2860
  ):
2616
2861
  """Make library linked data-blocks local to this file
2617
2862
 
@@ -2619,7 +2864,7 @@ def make_local(
2619
2864
  :type execution_context: int | str | None
2620
2865
  :type undo: bool | None
2621
2866
  :param type: Type
2622
- :type type: str | None
2867
+ :type type: typing.Literal['SELECT_OBJECT','SELECT_OBDATA','SELECT_OBDATA_MATERIAL','ALL'] | None
2623
2868
  """
2624
2869
 
2625
2870
  ...
@@ -2647,7 +2892,7 @@ def make_single_user(
2647
2892
  execution_context: int | str | None = None,
2648
2893
  undo: bool | None = None,
2649
2894
  *,
2650
- type: str | None = "SELECTED_OBJECTS",
2895
+ type: typing.Literal["SELECTED_OBJECTS", "ALL"] | None = "SELECTED_OBJECTS",
2651
2896
  object: bool | None = False,
2652
2897
  obdata: bool | None = False,
2653
2898
  material: bool | None = False,
@@ -2660,7 +2905,7 @@ def make_single_user(
2660
2905
  :type execution_context: int | str | None
2661
2906
  :type undo: bool | None
2662
2907
  :param type: Type
2663
- :type type: str | None
2908
+ :type type: typing.Literal['SELECTED_OBJECTS','ALL'] | None
2664
2909
  :param object: Object, Make single user objects
2665
2910
  :type object: bool | None
2666
2911
  :param obdata: Object Data, Make single user object data
@@ -2736,7 +2981,7 @@ def material_slot_move(
2736
2981
  execution_context: int | str | None = None,
2737
2982
  undo: bool | None = None,
2738
2983
  *,
2739
- direction: str | None = "UP",
2984
+ direction: typing.Literal["UP", "DOWN"] | None = "UP",
2740
2985
  ):
2741
2986
  """Move the active material up/down in the list
2742
2987
 
@@ -2744,7 +2989,7 @@ def material_slot_move(
2744
2989
  :type execution_context: int | str | None
2745
2990
  :type undo: bool | None
2746
2991
  :param direction: Direction, Direction to move the active material towards
2747
- :type direction: str | None
2992
+ :type direction: typing.Literal['UP','DOWN'] | None
2748
2993
  """
2749
2994
 
2750
2995
  ...
@@ -2814,10 +3059,11 @@ def metaball_add(
2814
3059
  execution_context: int | str | None = None,
2815
3060
  undo: bool | None = None,
2816
3061
  *,
2817
- type: str | None = "BALL",
3062
+ type: typing.Literal["BALL", "CAPSULE", "PLANE", "ELLIPSOID", "CUBE"]
3063
+ | None = "BALL",
2818
3064
  radius: float | None = 2.0,
2819
3065
  enter_editmode: bool | None = False,
2820
- align: str | None = "WORLD",
3066
+ align: typing.Literal["WORLD", "VIEW", "CURSOR"] | None = "WORLD",
2821
3067
  location: collections.abc.Sequence[float] | mathutils.Vector | None = (
2822
3068
  0.0,
2823
3069
  0.0,
@@ -2836,7 +3082,7 @@ def metaball_add(
2836
3082
  :type execution_context: int | str | None
2837
3083
  :type undo: bool | None
2838
3084
  :param type: Primitive
2839
- :type type: str | None
3085
+ :type type: typing.Literal['BALL', 'CAPSULE', 'PLANE', 'ELLIPSOID', 'CUBE'] | None
2840
3086
  :param radius: Radius
2841
3087
  :type radius: float | None
2842
3088
  :param enter_editmode: Enter Edit Mode, Enter edit mode when adding this object
@@ -2851,7 +3097,7 @@ def metaball_add(
2851
3097
 
2852
3098
  CURSOR
2853
3099
  3D Cursor -- Use the 3D cursor orientation for the new object.
2854
- :type align: str | None
3100
+ :type align: typing.Literal['WORLD','VIEW','CURSOR'] | None
2855
3101
  :param location: Location, Location for the newly added object
2856
3102
  :type location: collections.abc.Sequence[float] | mathutils.Vector | None
2857
3103
  :param rotation: Rotation, Rotation for the newly added object
@@ -2867,7 +3113,23 @@ def mode_set(
2867
3113
  execution_context: int | str | None = None,
2868
3114
  undo: bool | None = None,
2869
3115
  *,
2870
- mode: str | None = "OBJECT",
3116
+ mode: typing.Literal[
3117
+ "OBJECT",
3118
+ "EDIT",
3119
+ "POSE",
3120
+ "SCULPT",
3121
+ "VERTEX_PAINT",
3122
+ "WEIGHT_PAINT",
3123
+ "TEXTURE_PAINT",
3124
+ "PARTICLE_EDIT",
3125
+ "EDIT_GPENCIL",
3126
+ "SCULPT_GPENCIL",
3127
+ "PAINT_GPENCIL",
3128
+ "WEIGHT_GPENCIL",
3129
+ "VERTEX_GPENCIL",
3130
+ "SCULPT_CURVES",
3131
+ ]
3132
+ | None = "OBJECT",
2871
3133
  toggle: bool | None = False,
2872
3134
  ):
2873
3135
  """Sets the object interaction mode
@@ -2876,7 +3138,7 @@ def mode_set(
2876
3138
  :type execution_context: int | str | None
2877
3139
  :type undo: bool | None
2878
3140
  :param mode: Mode
2879
- :type mode: str | None
3141
+ :type mode: typing.Literal['OBJECT', 'EDIT', 'POSE', 'SCULPT', 'VERTEX_PAINT', 'WEIGHT_PAINT', 'TEXTURE_PAINT', 'PARTICLE_EDIT', 'EDIT_GPENCIL', 'SCULPT_GPENCIL', 'PAINT_GPENCIL', 'WEIGHT_GPENCIL', 'VERTEX_GPENCIL', 'SCULPT_CURVES'] | None
2880
3142
  :param toggle: Toggle
2881
3143
  :type toggle: bool | None
2882
3144
  """
@@ -2888,9 +3150,25 @@ def mode_set_with_submode(
2888
3150
  execution_context: int | str | None = None,
2889
3151
  undo: bool | None = None,
2890
3152
  *,
2891
- mode: str | None = "OBJECT",
3153
+ mode: typing.Literal[
3154
+ "OBJECT",
3155
+ "EDIT",
3156
+ "POSE",
3157
+ "SCULPT",
3158
+ "VERTEX_PAINT",
3159
+ "WEIGHT_PAINT",
3160
+ "TEXTURE_PAINT",
3161
+ "PARTICLE_EDIT",
3162
+ "EDIT_GPENCIL",
3163
+ "SCULPT_GPENCIL",
3164
+ "PAINT_GPENCIL",
3165
+ "WEIGHT_GPENCIL",
3166
+ "VERTEX_GPENCIL",
3167
+ "SCULPT_CURVES",
3168
+ ]
3169
+ | None = "OBJECT",
2892
3170
  toggle: bool | None = False,
2893
- mesh_select_mode: set[str] | None = {},
3171
+ mesh_select_mode: set[typing.Literal["VERT", "EDGE", "FACE"]] | None = {},
2894
3172
  ):
2895
3173
  """Sets the object interaction mode
2896
3174
 
@@ -2898,11 +3176,11 @@ def mode_set_with_submode(
2898
3176
  :type execution_context: int | str | None
2899
3177
  :type undo: bool | None
2900
3178
  :param mode: Mode
2901
- :type mode: str | None
3179
+ :type mode: typing.Literal['OBJECT', 'EDIT', 'POSE', 'SCULPT', 'VERTEX_PAINT', 'WEIGHT_PAINT', 'TEXTURE_PAINT', 'PARTICLE_EDIT', 'EDIT_GPENCIL', 'SCULPT_GPENCIL', 'PAINT_GPENCIL', 'WEIGHT_GPENCIL', 'VERTEX_GPENCIL', 'SCULPT_CURVES'] | None
2902
3180
  :param toggle: Toggle
2903
3181
  :type toggle: bool | None
2904
3182
  :param mesh_select_mode: Mesh Mode
2905
- :type mesh_select_mode: set[str] | None
3183
+ :type mesh_select_mode: set[typing.Literal['VERT', 'EDGE', 'FACE']] | None
2906
3184
  """
2907
3185
 
2908
3186
  ...
@@ -2912,7 +3190,92 @@ def modifier_add(
2912
3190
  execution_context: int | str | None = None,
2913
3191
  undo: bool | None = None,
2914
3192
  *,
2915
- type: str | None = "SUBSURF",
3193
+ type: typing.Literal[
3194
+ "GREASE_PENCIL_VERTEX_WEIGHT_PROXIMITY",
3195
+ "DATA_TRANSFER",
3196
+ "MESH_CACHE",
3197
+ "MESH_SEQUENCE_CACHE",
3198
+ "NORMAL_EDIT",
3199
+ "WEIGHTED_NORMAL",
3200
+ "UV_PROJECT",
3201
+ "UV_WARP",
3202
+ "VERTEX_WEIGHT_EDIT",
3203
+ "VERTEX_WEIGHT_MIX",
3204
+ "VERTEX_WEIGHT_PROXIMITY",
3205
+ "GREASE_PENCIL_COLOR",
3206
+ "GREASE_PENCIL_TINT",
3207
+ "GREASE_PENCIL_OPACITY",
3208
+ "GREASE_PENCIL_VERTEX_WEIGHT_ANGLE",
3209
+ "GREASE_PENCIL_TIME",
3210
+ "GREASE_PENCIL_TEXTURE",
3211
+ "ARRAY",
3212
+ "BEVEL",
3213
+ "BOOLEAN",
3214
+ "BUILD",
3215
+ "DECIMATE",
3216
+ "EDGE_SPLIT",
3217
+ "NODES",
3218
+ "MASK",
3219
+ "MIRROR",
3220
+ "MESH_TO_VOLUME",
3221
+ "MULTIRES",
3222
+ "REMESH",
3223
+ "SCREW",
3224
+ "SKIN",
3225
+ "SOLIDIFY",
3226
+ "SUBSURF",
3227
+ "TRIANGULATE",
3228
+ "VOLUME_TO_MESH",
3229
+ "WELD",
3230
+ "WIREFRAME",
3231
+ "GREASE_PENCIL_ARRAY",
3232
+ "GREASE_PENCIL_BUILD",
3233
+ "GREASE_PENCIL_LENGTH",
3234
+ "LINEART",
3235
+ "GREASE_PENCIL_MIRROR",
3236
+ "GREASE_PENCIL_MULTIPLY",
3237
+ "GREASE_PENCIL_SIMPLIFY",
3238
+ "GREASE_PENCIL_SUBDIV",
3239
+ "GREASE_PENCIL_ENVELOPE",
3240
+ "GREASE_PENCIL_OUTLINE",
3241
+ "ARMATURE",
3242
+ "CAST",
3243
+ "CURVE",
3244
+ "DISPLACE",
3245
+ "HOOK",
3246
+ "LAPLACIANDEFORM",
3247
+ "LATTICE",
3248
+ "MESH_DEFORM",
3249
+ "SHRINKWRAP",
3250
+ "SIMPLE_DEFORM",
3251
+ "SMOOTH",
3252
+ "CORRECTIVE_SMOOTH",
3253
+ "LAPLACIANSMOOTH",
3254
+ "SURFACE_DEFORM",
3255
+ "WARP",
3256
+ "WAVE",
3257
+ "VOLUME_DISPLACE",
3258
+ "GREASE_PENCIL_HOOK",
3259
+ "GREASE_PENCIL_NOISE",
3260
+ "GREASE_PENCIL_OFFSET",
3261
+ "GREASE_PENCIL_SMOOTH",
3262
+ "GREASE_PENCIL_THICKNESS",
3263
+ "GREASE_PENCIL_LATTICE",
3264
+ "GREASE_PENCIL_DASH",
3265
+ "GREASE_PENCIL_ARMATURE",
3266
+ "GREASE_PENCIL_SHRINKWRAP",
3267
+ "CLOTH",
3268
+ "COLLISION",
3269
+ "DYNAMIC_PAINT",
3270
+ "EXPLODE",
3271
+ "FLUID",
3272
+ "OCEAN",
3273
+ "PARTICLE_INSTANCE",
3274
+ "PARTICLE_SYSTEM",
3275
+ "SOFT_BODY",
3276
+ "SURFACE",
3277
+ ]
3278
+ | None = "SUBSURF",
2916
3279
  use_selected_objects: bool | None = False,
2917
3280
  ):
2918
3281
  """Add a procedural operation/effect to the active object
@@ -2921,7 +3284,7 @@ def modifier_add(
2921
3284
  :type execution_context: int | str | None
2922
3285
  :type undo: bool | None
2923
3286
  :param type: Type
2924
- :type type: str | None
3287
+ :type type: typing.Literal['GREASE_PENCIL_VERTEX_WEIGHT_PROXIMITY', 'DATA_TRANSFER', 'MESH_CACHE', 'MESH_SEQUENCE_CACHE', 'NORMAL_EDIT', 'WEIGHTED_NORMAL', 'UV_PROJECT', 'UV_WARP', 'VERTEX_WEIGHT_EDIT', 'VERTEX_WEIGHT_MIX', 'VERTEX_WEIGHT_PROXIMITY', 'GREASE_PENCIL_COLOR', 'GREASE_PENCIL_TINT', 'GREASE_PENCIL_OPACITY', 'GREASE_PENCIL_VERTEX_WEIGHT_ANGLE', 'GREASE_PENCIL_TIME', 'GREASE_PENCIL_TEXTURE', 'ARRAY', 'BEVEL', 'BOOLEAN', 'BUILD', 'DECIMATE', 'EDGE_SPLIT', 'NODES', 'MASK', 'MIRROR', 'MESH_TO_VOLUME', 'MULTIRES', 'REMESH', 'SCREW', 'SKIN', 'SOLIDIFY', 'SUBSURF', 'TRIANGULATE', 'VOLUME_TO_MESH', 'WELD', 'WIREFRAME', 'GREASE_PENCIL_ARRAY', 'GREASE_PENCIL_BUILD', 'GREASE_PENCIL_LENGTH', 'LINEART', 'GREASE_PENCIL_MIRROR', 'GREASE_PENCIL_MULTIPLY', 'GREASE_PENCIL_SIMPLIFY', 'GREASE_PENCIL_SUBDIV', 'GREASE_PENCIL_ENVELOPE', 'GREASE_PENCIL_OUTLINE', 'ARMATURE', 'CAST', 'CURVE', 'DISPLACE', 'HOOK', 'LAPLACIANDEFORM', 'LATTICE', 'MESH_DEFORM', 'SHRINKWRAP', 'SIMPLE_DEFORM', 'SMOOTH', 'CORRECTIVE_SMOOTH', 'LAPLACIANSMOOTH', 'SURFACE_DEFORM', 'WARP', 'WAVE', 'VOLUME_DISPLACE', 'GREASE_PENCIL_HOOK', 'GREASE_PENCIL_NOISE', 'GREASE_PENCIL_OFFSET', 'GREASE_PENCIL_SMOOTH', 'GREASE_PENCIL_THICKNESS', 'GREASE_PENCIL_LATTICE', 'GREASE_PENCIL_DASH', 'GREASE_PENCIL_ARMATURE', 'GREASE_PENCIL_SHRINKWRAP', 'CLOTH', 'COLLISION', 'DYNAMIC_PAINT', 'EXPLODE', 'FLUID', 'OCEAN', 'PARTICLE_INSTANCE', 'PARTICLE_SYSTEM', 'SOFT_BODY', 'SURFACE'] | None
2925
3288
  :param use_selected_objects: Selected Objects, Affect all selected objects instead of just the active object
2926
3289
  :type use_selected_objects: bool | None
2927
3290
  """
@@ -2933,7 +3296,8 @@ def modifier_add_node_group(
2933
3296
  execution_context: int | str | None = None,
2934
3297
  undo: bool | None = None,
2935
3298
  *,
2936
- asset_library_type: str | None = "LOCAL",
3299
+ asset_library_type: typing.Literal["ALL", "LOCAL", "ESSENTIALS", "CUSTOM"]
3300
+ | None = "LOCAL",
2937
3301
  asset_library_identifier: str = "",
2938
3302
  relative_asset_identifier: str = "",
2939
3303
  session_uid: int | None = 0,
@@ -2945,7 +3309,7 @@ def modifier_add_node_group(
2945
3309
  :type execution_context: int | str | None
2946
3310
  :type undo: bool | None
2947
3311
  :param asset_library_type: Asset Library Type
2948
- :type asset_library_type: str | None
3312
+ :type asset_library_type: typing.Literal['ALL', 'LOCAL', 'ESSENTIALS', 'CUSTOM'] | None
2949
3313
  :param asset_library_identifier: Asset Library Identifier
2950
3314
  :type asset_library_identifier: str
2951
3315
  :param relative_asset_identifier: Relative Asset Identifier
@@ -3282,7 +3646,10 @@ def multires_external_save(
3282
3646
  filter_blenlib: bool | None = False,
3283
3647
  filemode: int | None = 9,
3284
3648
  relative_path: bool | None = True,
3285
- display_type: str | None = "DEFAULT",
3649
+ display_type: typing.Literal[
3650
+ "DEFAULT", "LIST_VERTICAL", "LIST_HORIZONTAL", "THUMBNAIL"
3651
+ ]
3652
+ | None = "DEFAULT",
3286
3653
  sort_method: str | None = "",
3287
3654
  modifier: str = "",
3288
3655
  ):
@@ -3348,7 +3715,7 @@ def multires_external_save(
3348
3715
 
3349
3716
  THUMBNAIL
3350
3717
  Thumbnails -- Display files as thumbnails.
3351
- :type display_type: str | None
3718
+ :type display_type: typing.Literal['DEFAULT','LIST_VERTICAL','LIST_HORIZONTAL','THUMBNAIL'] | None
3352
3719
  :param sort_method: File sorting mode
3353
3720
  :type sort_method: str | None
3354
3721
  :param modifier: Modifier, Name of the modifier to edit
@@ -3417,7 +3784,7 @@ def multires_subdivide(
3417
3784
  undo: bool | None = None,
3418
3785
  *,
3419
3786
  modifier: str = "",
3420
- mode: str | None = "CATMULL_CLARK",
3787
+ mode: typing.Literal["CATMULL_CLARK", "SIMPLE", "LINEAR"] | None = "CATMULL_CLARK",
3421
3788
  ):
3422
3789
  """Add a new level of subdivision
3423
3790
 
@@ -3436,7 +3803,7 @@ def multires_subdivide(
3436
3803
 
3437
3804
  LINEAR
3438
3805
  Linear -- Create a new level using linear interpolation of the sculpted displacement.
3439
- :type mode: str | None
3806
+ :type mode: typing.Literal['CATMULL_CLARK','SIMPLE','LINEAR'] | None
3440
3807
  """
3441
3808
 
3442
3809
  ...
@@ -3499,8 +3866,15 @@ def origin_set(
3499
3866
  execution_context: int | str | None = None,
3500
3867
  undo: bool | None = None,
3501
3868
  *,
3502
- type: str | None = "GEOMETRY_ORIGIN",
3503
- center: str | None = "MEDIAN",
3869
+ type: typing.Literal[
3870
+ "GEOMETRY_ORIGIN",
3871
+ "ORIGIN_GEOMETRY",
3872
+ "ORIGIN_CURSOR",
3873
+ "ORIGIN_CENTER_OF_MASS",
3874
+ "ORIGIN_CENTER_OF_VOLUME",
3875
+ ]
3876
+ | None = "GEOMETRY_ORIGIN",
3877
+ center: typing.Literal["MEDIAN", "BOUNDS"] | None = "MEDIAN",
3504
3878
  ):
3505
3879
  """Set the object's origin, by either moving the data, or set to center of data, or use 3D cursor
3506
3880
 
@@ -3523,9 +3897,9 @@ def origin_set(
3523
3897
 
3524
3898
  ORIGIN_CENTER_OF_VOLUME
3525
3899
  Origin to Center of Mass (Volume) -- Calculate the center of mass from the volume (must be manifold geometry with consistent normals).
3526
- :type type: str | None
3900
+ :type type: typing.Literal['GEOMETRY_ORIGIN','ORIGIN_GEOMETRY','ORIGIN_CURSOR','ORIGIN_CENTER_OF_MASS','ORIGIN_CENTER_OF_VOLUME'] | None
3527
3901
  :param center: Center
3528
- :type center: str | None
3902
+ :type center: typing.Literal['MEDIAN','BOUNDS'] | None
3529
3903
  """
3530
3904
 
3531
3905
  ...
@@ -3535,7 +3909,8 @@ def parent_clear(
3535
3909
  execution_context: int | str | None = None,
3536
3910
  undo: bool | None = None,
3537
3911
  *,
3538
- type: str | None = "CLEAR",
3912
+ type: typing.Literal["CLEAR", "CLEAR_KEEP_TRANSFORM", "CLEAR_INVERSE"]
3913
+ | None = "CLEAR",
3539
3914
  ):
3540
3915
  """Clear the object's parenting
3541
3916
 
@@ -3552,7 +3927,7 @@ def parent_clear(
3552
3927
 
3553
3928
  CLEAR_INVERSE
3554
3929
  Clear Parent Inverse -- Reset the transform corrections applied to the parenting relationship, does not remove parenting itself.
3555
- :type type: str | None
3930
+ :type type: typing.Literal['CLEAR','CLEAR_KEEP_TRANSFORM','CLEAR_INVERSE'] | None
3556
3931
  """
3557
3932
 
3558
3933
  ...
@@ -3594,7 +3969,22 @@ def parent_set(
3594
3969
  execution_context: int | str | None = None,
3595
3970
  undo: bool | None = None,
3596
3971
  *,
3597
- type: str | None = "OBJECT",
3972
+ type: typing.Literal[
3973
+ "OBJECT",
3974
+ "ARMATURE",
3975
+ "ARMATURE_NAME",
3976
+ "ARMATURE_AUTO",
3977
+ "ARMATURE_ENVELOPE",
3978
+ "BONE",
3979
+ "BONE_RELATIVE",
3980
+ "CURVE",
3981
+ "FOLLOW",
3982
+ "PATH_CONST",
3983
+ "LATTICE",
3984
+ "VERTEX",
3985
+ "VERTEX_TRI",
3986
+ ]
3987
+ | None = "OBJECT",
3598
3988
  xmirror: bool | None = False,
3599
3989
  keep_transform: bool | None = False,
3600
3990
  ):
@@ -3604,7 +3994,7 @@ def parent_set(
3604
3994
  :type execution_context: int | str | None
3605
3995
  :type undo: bool | None
3606
3996
  :param type: Type
3607
- :type type: str | None
3997
+ :type type: typing.Literal['OBJECT','ARMATURE','ARMATURE_NAME','ARMATURE_AUTO','ARMATURE_ENVELOPE','BONE','BONE_RELATIVE','CURVE','FOLLOW','PATH_CONST','LATTICE','VERTEX','VERTEX_TRI'] | None
3608
3998
  :param xmirror: X Mirror, Apply weights symmetrically along X axis, for Envelope/Automatic vertex groups creation
3609
3999
  :type xmirror: bool | None
3610
4000
  :param keep_transform: Keep Transform, Apply transformation before parenting
@@ -3646,8 +4036,9 @@ def paths_calculate(
3646
4036
  execution_context: int | str | None = None,
3647
4037
  undo: bool | None = None,
3648
4038
  *,
3649
- display_type: str | None = "RANGE",
3650
- range: str | None = "SCENE",
4039
+ display_type: typing.Literal["CURRENT_FRAME", "RANGE"] | None = "RANGE",
4040
+ range: typing.Literal["KEYS_ALL", "KEYS_SELECTED", "SCENE", "MANUAL"]
4041
+ | None = "SCENE",
3651
4042
  ):
3652
4043
  """Generate motion paths for the selected objects
3653
4044
 
@@ -3655,9 +4046,9 @@ def paths_calculate(
3655
4046
  :type execution_context: int | str | None
3656
4047
  :type undo: bool | None
3657
4048
  :param display_type: Display type
3658
- :type display_type: str | None
4049
+ :type display_type: typing.Literal['CURRENT_FRAME', 'RANGE'] | None
3659
4050
  :param range: Computation Range
3660
- :type range: str | None
4051
+ :type range: typing.Literal['KEYS_ALL', 'KEYS_SELECTED', 'SCENE', 'MANUAL'] | None
3661
4052
  """
3662
4053
 
3663
4054
  ...
@@ -3713,7 +4104,7 @@ def pointcloud_add(
3713
4104
  execution_context: int | str | None = None,
3714
4105
  undo: bool | None = None,
3715
4106
  *,
3716
- align: str | None = "WORLD",
4107
+ align: typing.Literal["WORLD", "VIEW", "CURSOR"] | None = "WORLD",
3717
4108
  location: collections.abc.Sequence[float] | mathutils.Vector | None = (
3718
4109
  0.0,
3719
4110
  0.0,
@@ -3741,7 +4132,7 @@ def pointcloud_add(
3741
4132
 
3742
4133
  CURSOR
3743
4134
  3D Cursor -- Use the 3D cursor orientation for the new object.
3744
- :type align: str | None
4135
+ :type align: typing.Literal['WORLD','VIEW','CURSOR'] | None
3745
4136
  :param location: Location, Location for the newly added object
3746
4137
  :type location: collections.abc.Sequence[float] | mathutils.Vector | None
3747
4138
  :param rotation: Rotation, Rotation for the newly added object
@@ -3776,7 +4167,7 @@ def quadriflow_remesh(
3776
4167
  use_preserve_boundary: bool | None = False,
3777
4168
  preserve_attributes: bool | None = False,
3778
4169
  smooth_normals: bool | None = False,
3779
- mode: str | None = "FACES",
4170
+ mode: typing.Literal["RATIO", "EDGE", "FACES"] | None = "FACES",
3780
4171
  target_ratio: float | None = 1.0,
3781
4172
  target_edge_length: float | None = 0.1,
3782
4173
  target_faces: int | None = 4000,
@@ -3808,7 +4199,7 @@ def quadriflow_remesh(
3808
4199
 
3809
4200
  FACES
3810
4201
  Faces -- Input target number of faces in the new mesh.
3811
- :type mode: str | None
4202
+ :type mode: typing.Literal['RATIO','EDGE','FACES'] | None
3812
4203
  :param target_ratio: Ratio, Relative number of faces compared to the current mesh
3813
4204
  :type target_ratio: float | None
3814
4205
  :param target_edge_length: Edge Length, Target edge length in the new mesh
@@ -3828,7 +4219,7 @@ def quick_explode(
3828
4219
  execution_context: int | str | None = None,
3829
4220
  undo: bool | None = None,
3830
4221
  *,
3831
- style: str | None = "EXPLODE",
4222
+ style: typing.Literal["EXPLODE", "BLEND"] | None = "EXPLODE",
3832
4223
  amount: int | None = 100,
3833
4224
  frame_duration: int | None = 50,
3834
4225
  frame_start: int | None = 1,
@@ -3842,7 +4233,7 @@ def quick_explode(
3842
4233
  :type execution_context: int | str | None
3843
4234
  :type undo: bool | None
3844
4235
  :param style: Explode Style
3845
- :type style: str | None
4236
+ :type style: typing.Literal['EXPLODE','BLEND'] | None
3846
4237
  :param amount: Number of Pieces
3847
4238
  :type amount: int | None
3848
4239
  :param frame_duration: Duration
@@ -3864,7 +4255,7 @@ def quick_fur(
3864
4255
  execution_context: int | str | None = None,
3865
4256
  undo: bool | None = None,
3866
4257
  *,
3867
- density: str | None = "MEDIUM",
4258
+ density: typing.Literal["LOW", "MEDIUM", "HIGH"] | None = "MEDIUM",
3868
4259
  length: float | None = 0.1,
3869
4260
  radius: float | None = 0.001,
3870
4261
  view_percentage: float | None = 1.0,
@@ -3878,7 +4269,7 @@ def quick_fur(
3878
4269
  :type execution_context: int | str | None
3879
4270
  :type undo: bool | None
3880
4271
  :param density: Density
3881
- :type density: str | None
4272
+ :type density: typing.Literal['LOW','MEDIUM','HIGH'] | None
3882
4273
  :param length: Length
3883
4274
  :type length: float | None
3884
4275
  :param radius: Hair Radius
@@ -3918,7 +4309,7 @@ def quick_smoke(
3918
4309
  execution_context: int | str | None = None,
3919
4310
  undo: bool | None = None,
3920
4311
  *,
3921
- style: str | None = "SMOKE",
4312
+ style: typing.Literal["SMOKE", "FIRE", "BOTH"] | None = "SMOKE",
3922
4313
  show_flows: bool | None = False,
3923
4314
  ):
3924
4315
  """Use selected objects as smoke emitters
@@ -3927,7 +4318,7 @@ def quick_smoke(
3927
4318
  :type execution_context: int | str | None
3928
4319
  :type undo: bool | None
3929
4320
  :param style: Smoke Style
3930
- :type style: str | None
4321
+ :type style: typing.Literal['SMOKE','FIRE','BOTH'] | None
3931
4322
  :param show_flows: Render Smoke Objects, Keep the smoke objects visible during rendering
3932
4323
  :type show_flows: bool | None
3933
4324
  """
@@ -4031,7 +4422,7 @@ def select_all(
4031
4422
  execution_context: int | str | None = None,
4032
4423
  undo: bool | None = None,
4033
4424
  *,
4034
- action: str | None = "TOGGLE",
4425
+ action: typing.Literal["TOGGLE", "SELECT", "DESELECT", "INVERT"] | None = "TOGGLE",
4035
4426
  ):
4036
4427
  """Change selection of all visible objects in scene
4037
4428
 
@@ -4051,7 +4442,7 @@ def select_all(
4051
4442
 
4052
4443
  INVERT
4053
4444
  Invert -- Invert selection of all elements.
4054
- :type action: str | None
4445
+ :type action: typing.Literal['TOGGLE','SELECT','DESELECT','INVERT'] | None
4055
4446
  """
4056
4447
 
4057
4448
  ...
@@ -4062,7 +4453,26 @@ def select_by_type(
4062
4453
  undo: bool | None = None,
4063
4454
  *,
4064
4455
  extend: bool | None = False,
4065
- type: str | None = "MESH",
4456
+ type: typing.Literal[
4457
+ "MESH",
4458
+ "CURVE",
4459
+ "SURFACE",
4460
+ "META",
4461
+ "FONT",
4462
+ "CURVES",
4463
+ "POINTCLOUD",
4464
+ "VOLUME",
4465
+ "GPENCIL",
4466
+ "GREASEPENCIL",
4467
+ "ARMATURE",
4468
+ "LATTICE",
4469
+ "EMPTY",
4470
+ "LIGHT",
4471
+ "LIGHT_PROBE",
4472
+ "CAMERA",
4473
+ "SPEAKER",
4474
+ ]
4475
+ | None = "MESH",
4066
4476
  ):
4067
4477
  """Select all visible objects that are of a type
4068
4478
 
@@ -4072,7 +4482,7 @@ def select_by_type(
4072
4482
  :param extend: Extend, Extend selection instead of deselecting everything first
4073
4483
  :type extend: bool | None
4074
4484
  :param type: Type
4075
- :type type: str | None
4485
+ :type type: typing.Literal['MESH', 'CURVE', 'SURFACE', 'META', 'FONT', 'CURVES', 'POINTCLOUD', 'VOLUME', 'GPENCIL', 'GREASEPENCIL', 'ARMATURE', 'LATTICE', 'EMPTY', 'LIGHT', 'LIGHT_PROBE', 'CAMERA', 'SPEAKER'] | None
4076
4486
  """
4077
4487
 
4078
4488
  ...
@@ -4101,7 +4511,20 @@ def select_grouped(
4101
4511
  undo: bool | None = None,
4102
4512
  *,
4103
4513
  extend: bool | None = False,
4104
- type: str | None = "CHILDREN_RECURSIVE",
4514
+ type: typing.Literal[
4515
+ "CHILDREN_RECURSIVE",
4516
+ "CHILDREN",
4517
+ "PARENT",
4518
+ "SIBLINGS",
4519
+ "TYPE",
4520
+ "COLLECTION",
4521
+ "HOOK",
4522
+ "PASS",
4523
+ "COLOR",
4524
+ "KEYINGSET",
4525
+ "LIGHT_TYPE",
4526
+ ]
4527
+ | None = "CHILDREN_RECURSIVE",
4105
4528
  ):
4106
4529
  """Select all visible objects grouped by various properties
4107
4530
 
@@ -4144,7 +4567,7 @@ def select_grouped(
4144
4567
 
4145
4568
  LIGHT_TYPE
4146
4569
  Light Type -- Matching light types.
4147
- :type type: str | None
4570
+ :type type: typing.Literal['CHILDREN_RECURSIVE','CHILDREN','PARENT','SIBLINGS','TYPE','COLLECTION','HOOK','PASS','COLOR','KEYINGSET','LIGHT_TYPE'] | None
4148
4571
  """
4149
4572
 
4150
4573
  ...
@@ -4154,7 +4577,7 @@ def select_hierarchy(
4154
4577
  execution_context: int | str | None = None,
4155
4578
  undo: bool | None = None,
4156
4579
  *,
4157
- direction: str | None = "PARENT",
4580
+ direction: typing.Literal["PARENT", "CHILD"] | None = "PARENT",
4158
4581
  extend: bool | None = False,
4159
4582
  ):
4160
4583
  """Select object relative to the active object's position in the hierarchy
@@ -4163,7 +4586,7 @@ def select_hierarchy(
4163
4586
  :type execution_context: int | str | None
4164
4587
  :type undo: bool | None
4165
4588
  :param direction: Direction, Direction to select in the hierarchy
4166
- :type direction: str | None
4589
+ :type direction: typing.Literal['PARENT','CHILD'] | None
4167
4590
  :param extend: Extend, Extend the existing selection
4168
4591
  :type extend: bool | None
4169
4592
  """
@@ -4190,7 +4613,10 @@ def select_linked(
4190
4613
  undo: bool | None = None,
4191
4614
  *,
4192
4615
  extend: bool | None = False,
4193
- type: str | None = "OBDATA",
4616
+ type: typing.Literal[
4617
+ "OBDATA", "MATERIAL", "DUPGROUP", "PARTICLE", "LIBRARY", "LIBRARY_OBDATA"
4618
+ ]
4619
+ | None = "OBDATA",
4194
4620
  ):
4195
4621
  """Select all visible objects that are linked
4196
4622
 
@@ -4200,7 +4626,7 @@ def select_linked(
4200
4626
  :param extend: Extend, Extend selection instead of deselecting everything first
4201
4627
  :type extend: bool | None
4202
4628
  :param type: Type
4203
- :type type: str | None
4629
+ :type type: typing.Literal['OBDATA','MATERIAL','DUPGROUP','PARTICLE','LIBRARY','LIBRARY_OBDATA'] | None
4204
4630
  """
4205
4631
 
4206
4632
  ...
@@ -4268,7 +4694,7 @@ def select_random(
4268
4694
  *,
4269
4695
  ratio: float | None = 0.5,
4270
4696
  seed: int | None = 0,
4271
- action: str | None = "SELECT",
4697
+ action: typing.Literal["SELECT", "DESELECT"] | None = "SELECT",
4272
4698
  ):
4273
4699
  """Select or deselect random visible objects
4274
4700
 
@@ -4286,7 +4712,7 @@ def select_random(
4286
4712
 
4287
4713
  DESELECT
4288
4714
  Deselect -- Deselect all elements.
4289
- :type action: str | None
4715
+ :type action: typing.Literal['SELECT','DESELECT'] | None
4290
4716
  """
4291
4717
 
4292
4718
  ...
@@ -4392,7 +4818,18 @@ def shaderfx_add(
4392
4818
  execution_context: int | str | None = None,
4393
4819
  undo: bool | None = None,
4394
4820
  *,
4395
- type: str | None = "FX_BLUR",
4821
+ type: typing.Literal[
4822
+ "FX_BLUR",
4823
+ "FX_COLORIZE",
4824
+ "FX_FLIP",
4825
+ "FX_GLOW",
4826
+ "FX_PIXEL",
4827
+ "FX_RIM",
4828
+ "FX_SHADOW",
4829
+ "FX_SWIRL",
4830
+ "FX_WAVE",
4831
+ ]
4832
+ | None = "FX_BLUR",
4396
4833
  ):
4397
4834
  """Add a visual effect to the active object
4398
4835
 
@@ -4400,7 +4837,7 @@ def shaderfx_add(
4400
4837
  :type execution_context: int | str | None
4401
4838
  :type undo: bool | None
4402
4839
  :param type: Type
4403
- :type type: str | None
4840
+ :type type: typing.Literal['FX_BLUR', 'FX_COLORIZE', 'FX_FLIP', 'FX_GLOW', 'FX_PIXEL', 'FX_RIM', 'FX_SHADOW', 'FX_SWIRL', 'FX_WAVE'] | None
4404
4841
  """
4405
4842
 
4406
4843
  ...
@@ -4538,7 +4975,7 @@ def shape_key_lock(
4538
4975
  execution_context: int | str | None = None,
4539
4976
  undo: bool | None = None,
4540
4977
  *,
4541
- action: str | None = "LOCK",
4978
+ action: typing.Literal["LOCK", "UNLOCK"] | None = "LOCK",
4542
4979
  ):
4543
4980
  """Change the lock state of all shape keys of active object
4544
4981
 
@@ -4552,7 +4989,7 @@ def shape_key_lock(
4552
4989
 
4553
4990
  UNLOCK
4554
4991
  Unlock -- Unlock all shape keys.
4555
- :type action: str | None
4992
+ :type action: typing.Literal['LOCK','UNLOCK'] | None
4556
4993
  """
4557
4994
 
4558
4995
  ...
@@ -4580,7 +5017,7 @@ def shape_key_move(
4580
5017
  execution_context: int | str | None = None,
4581
5018
  undo: bool | None = None,
4582
5019
  *,
4583
- type: str | None = "TOP",
5020
+ type: typing.Literal["TOP", "UP", "DOWN", "BOTTOM"] | None = "TOP",
4584
5021
  ):
4585
5022
  """Move the active shape key up/down in the list
4586
5023
 
@@ -4600,7 +5037,7 @@ def shape_key_move(
4600
5037
 
4601
5038
  BOTTOM
4602
5039
  Bottom -- Bottom of the list.
4603
- :type type: str | None
5040
+ :type type: typing.Literal['TOP','UP','DOWN','BOTTOM'] | None
4604
5041
  """
4605
5042
 
4606
5043
  ...
@@ -4645,7 +5082,7 @@ def shape_key_transfer(
4645
5082
  execution_context: int | str | None = None,
4646
5083
  undo: bool | None = None,
4647
5084
  *,
4648
- mode: str | None = "OFFSET",
5085
+ mode: typing.Literal["OFFSET", "RELATIVE_FACE", "RELATIVE_EDGE"] | None = "OFFSET",
4649
5086
  use_clamp: bool | None = False,
4650
5087
  ):
4651
5088
  """Copy the active shape key of another selected object to this one
@@ -4663,7 +5100,7 @@ def shape_key_transfer(
4663
5100
 
4664
5101
  RELATIVE_EDGE
4665
5102
  Relative Edge -- Calculate relative position (using edges).
4666
- :type mode: str | None
5103
+ :type mode: typing.Literal['OFFSET','RELATIVE_FACE','RELATIVE_EDGE'] | None
4667
5104
  :param use_clamp: Clamp Offset, Clamp the transformation to the distance each vertex moves in the original shape
4668
5105
  :type use_clamp: bool | None
4669
5106
  """
@@ -4747,7 +5184,7 @@ def skin_loose_mark_clear(
4747
5184
  execution_context: int | str | None = None,
4748
5185
  undo: bool | None = None,
4749
5186
  *,
4750
- action: str | None = "MARK",
5187
+ action: typing.Literal["MARK", "CLEAR"] | None = "MARK",
4751
5188
  ):
4752
5189
  """Mark/clear selected vertices as loose
4753
5190
 
@@ -4761,7 +5198,7 @@ def skin_loose_mark_clear(
4761
5198
 
4762
5199
  CLEAR
4763
5200
  Clear -- Set selected vertices as not loose.
4764
- :type action: str | None
5201
+ :type action: typing.Literal['MARK','CLEAR'] | None
4765
5202
  """
4766
5203
 
4767
5204
  ...
@@ -4800,7 +5237,7 @@ def speaker_add(
4800
5237
  undo: bool | None = None,
4801
5238
  *,
4802
5239
  enter_editmode: bool | None = False,
4803
- align: str | None = "WORLD",
5240
+ align: typing.Literal["WORLD", "VIEW", "CURSOR"] | None = "WORLD",
4804
5241
  location: collections.abc.Sequence[float] | mathutils.Vector | None = (
4805
5242
  0.0,
4806
5243
  0.0,
@@ -4830,7 +5267,7 @@ def speaker_add(
4830
5267
 
4831
5268
  CURSOR
4832
5269
  3D Cursor -- Use the 3D cursor orientation for the new object.
4833
- :type align: str | None
5270
+ :type align: typing.Literal['WORLD','VIEW','CURSOR'] | None
4834
5271
  :param location: Location, Location for the newly added object
4835
5272
  :type location: collections.abc.Sequence[float] | mathutils.Vector | None
4836
5273
  :param rotation: Rotation, Rotation for the newly added object
@@ -4887,7 +5324,7 @@ def text_add(
4887
5324
  *,
4888
5325
  radius: float | None = 1.0,
4889
5326
  enter_editmode: bool | None = False,
4890
- align: str | None = "WORLD",
5327
+ align: typing.Literal["WORLD", "VIEW", "CURSOR"] | None = "WORLD",
4891
5328
  location: collections.abc.Sequence[float] | mathutils.Vector | None = (
4892
5329
  0.0,
4893
5330
  0.0,
@@ -4919,7 +5356,7 @@ def text_add(
4919
5356
 
4920
5357
  CURSOR
4921
5358
  3D Cursor -- Use the 3D cursor orientation for the new object.
4922
- :type align: str | None
5359
+ :type align: typing.Literal['WORLD','VIEW','CURSOR'] | None
4923
5360
  :param location: Location, Location for the newly added object
4924
5361
  :type location: collections.abc.Sequence[float] | mathutils.Vector | None
4925
5362
  :param rotation: Rotation, Rotation for the newly added object
@@ -4935,7 +5372,7 @@ def track_clear(
4935
5372
  execution_context: int | str | None = None,
4936
5373
  undo: bool | None = None,
4937
5374
  *,
4938
- type: str | None = "CLEAR",
5375
+ type: typing.Literal["CLEAR", "CLEAR_KEEP_TRANSFORM"] | None = "CLEAR",
4939
5376
  ):
4940
5377
  """Clear tracking constraint or flag from object
4941
5378
 
@@ -4943,7 +5380,7 @@ def track_clear(
4943
5380
  :type execution_context: int | str | None
4944
5381
  :type undo: bool | None
4945
5382
  :param type: Type
4946
- :type type: str | None
5383
+ :type type: typing.Literal['CLEAR','CLEAR_KEEP_TRANSFORM'] | None
4947
5384
  """
4948
5385
 
4949
5386
  ...
@@ -4953,7 +5390,7 @@ def track_set(
4953
5390
  execution_context: int | str | None = None,
4954
5391
  undo: bool | None = None,
4955
5392
  *,
4956
- type: str | None = "DAMPTRACK",
5393
+ type: typing.Literal["DAMPTRACK", "TRACKTO", "LOCKTRACK"] | None = "DAMPTRACK",
4957
5394
  ):
4958
5395
  """Make the object track another object, using various methods/constraints
4959
5396
 
@@ -4961,7 +5398,7 @@ def track_set(
4961
5398
  :type execution_context: int | str | None
4962
5399
  :type undo: bool | None
4963
5400
  :param type: Type
4964
- :type type: str | None
5401
+ :type type: typing.Literal['DAMPTRACK','TRACKTO','LOCKTRACK'] | None
4965
5402
  """
4966
5403
 
4967
5404
  ...
@@ -5070,7 +5507,7 @@ def transforms_to_deltas(
5070
5507
  execution_context: int | str | None = None,
5071
5508
  undo: bool | None = None,
5072
5509
  *,
5073
- mode: str | None = "ALL",
5510
+ mode: typing.Literal["ALL", "LOC", "ROT", "SCALE"] | None = "ALL",
5074
5511
  reset_values: bool | None = True,
5075
5512
  ):
5076
5513
  """Convert normal object transforms to delta transforms, any existing delta transforms will be included as well
@@ -5091,7 +5528,7 @@ def transforms_to_deltas(
5091
5528
 
5092
5529
  SCALE
5093
5530
  Scale -- Transfer scale transforms only.
5094
- :type mode: str | None
5531
+ :type mode: typing.Literal['ALL','LOC','ROT','SCALE'] | None
5095
5532
  :param reset_values: Reset Values, Clear transform values after transferring to deltas
5096
5533
  :type reset_values: bool | None
5097
5534
  """
@@ -5294,8 +5731,9 @@ def vertex_group_lock(
5294
5731
  execution_context: int | str | None = None,
5295
5732
  undo: bool | None = None,
5296
5733
  *,
5297
- action: str | None = "TOGGLE",
5298
- mask: str | None = "ALL",
5734
+ action: typing.Literal["TOGGLE", "LOCK", "UNLOCK", "INVERT"] | None = "TOGGLE",
5735
+ mask: typing.Literal["ALL", "SELECTED", "UNSELECTED", "INVERT_UNSELECTED"]
5736
+ | None = "ALL",
5299
5737
  ):
5300
5738
  """Change the lock state of all or some vertex groups of active object
5301
5739
 
@@ -5315,7 +5753,7 @@ def vertex_group_lock(
5315
5753
 
5316
5754
  INVERT
5317
5755
  Invert -- Invert the lock state of all vertex groups.
5318
- :type action: str | None
5756
+ :type action: typing.Literal['TOGGLE','LOCK','UNLOCK','INVERT'] | None
5319
5757
  :param mask: Mask, Apply the action based on vertex group selection
5320
5758
 
5321
5759
  ALL
@@ -5329,7 +5767,7 @@ def vertex_group_lock(
5329
5767
 
5330
5768
  INVERT_UNSELECTED
5331
5769
  Invert Unselected -- Apply the opposite of Lock/Unlock to unselected vertex groups.
5332
- :type mask: str | None
5770
+ :type mask: typing.Literal['ALL','SELECTED','UNSELECTED','INVERT_UNSELECTED'] | None
5333
5771
  """
5334
5772
 
5335
5773
  ...
@@ -5366,7 +5804,7 @@ def vertex_group_move(
5366
5804
  execution_context: int | str | None = None,
5367
5805
  undo: bool | None = None,
5368
5806
  *,
5369
- direction: str | None = "UP",
5807
+ direction: typing.Literal["UP", "DOWN"] | None = "UP",
5370
5808
  ):
5371
5809
  """Move the active vertex group up/down in the list
5372
5810
 
@@ -5374,7 +5812,7 @@ def vertex_group_move(
5374
5812
  :type execution_context: int | str | None
5375
5813
  :type undo: bool | None
5376
5814
  :param direction: Direction, Direction to move the active vertex group towards
5377
- :type direction: str | None
5815
+ :type direction: typing.Literal['UP','DOWN'] | None
5378
5816
  """
5379
5817
 
5380
5818
  ...
@@ -5541,7 +5979,7 @@ def vertex_group_sort(
5541
5979
  execution_context: int | str | None = None,
5542
5980
  undo: bool | None = None,
5543
5981
  *,
5544
- sort_type: str | None = "NAME",
5982
+ sort_type: typing.Literal["NAME", "BONE_HIERARCHY"] | None = "NAME",
5545
5983
  ):
5546
5984
  """Sort vertex groups
5547
5985
 
@@ -5549,7 +5987,7 @@ def vertex_group_sort(
5549
5987
  :type execution_context: int | str | None
5550
5988
  :type undo: bool | None
5551
5989
  :param sort_type: Sort Type, Sort type
5552
- :type sort_type: str | None
5990
+ :type sort_type: typing.Literal['NAME','BONE_HIERARCHY'] | None
5553
5991
  """
5554
5992
 
5555
5993
  ...
@@ -5669,7 +6107,7 @@ def volume_add(
5669
6107
  execution_context: int | str | None = None,
5670
6108
  undo: bool | None = None,
5671
6109
  *,
5672
- align: str | None = "WORLD",
6110
+ align: typing.Literal["WORLD", "VIEW", "CURSOR"] | None = "WORLD",
5673
6111
  location: collections.abc.Sequence[float] | mathutils.Vector | None = (
5674
6112
  0.0,
5675
6113
  0.0,
@@ -5697,7 +6135,7 @@ def volume_add(
5697
6135
 
5698
6136
  CURSOR
5699
6137
  3D Cursor -- Use the 3D cursor orientation for the new object.
5700
- :type align: str | None
6138
+ :type align: typing.Literal['WORLD','VIEW','CURSOR'] | None
5701
6139
  :param location: Location, Location for the newly added object
5702
6140
  :type location: collections.abc.Sequence[float] | mathutils.Vector | None
5703
6141
  :param rotation: Rotation, Rotation for the newly added object
@@ -5738,10 +6176,13 @@ def volume_import(
5738
6176
  filter_blenlib: bool | None = False,
5739
6177
  filemode: int | None = 9,
5740
6178
  relative_path: bool | None = True,
5741
- display_type: str | None = "DEFAULT",
6179
+ display_type: typing.Literal[
6180
+ "DEFAULT", "LIST_VERTICAL", "LIST_HORIZONTAL", "THUMBNAIL"
6181
+ ]
6182
+ | None = "DEFAULT",
5742
6183
  sort_method: str | None = "",
5743
6184
  use_sequence_detection: bool | None = True,
5744
- align: str | None = "WORLD",
6185
+ align: typing.Literal["WORLD", "VIEW", "CURSOR"] | None = "WORLD",
5745
6186
  location: collections.abc.Sequence[float] | mathutils.Vector | None = (
5746
6187
  0.0,
5747
6188
  0.0,
@@ -5820,7 +6261,7 @@ def volume_import(
5820
6261
 
5821
6262
  THUMBNAIL
5822
6263
  Thumbnails -- Display files as thumbnails.
5823
- :type display_type: str | None
6264
+ :type display_type: typing.Literal['DEFAULT','LIST_VERTICAL','LIST_HORIZONTAL','THUMBNAIL'] | None
5824
6265
  :param sort_method: File sorting mode
5825
6266
  :type sort_method: str | None
5826
6267
  :param use_sequence_detection: Detect Sequences, Automatically detect animated sequences in selected volume files (based on file names)
@@ -5835,7 +6276,7 @@ def volume_import(
5835
6276
 
5836
6277
  CURSOR
5837
6278
  3D Cursor -- Use the 3D cursor orientation for the new object.
5838
- :type align: str | None
6279
+ :type align: typing.Literal['WORLD','VIEW','CURSOR'] | None
5839
6280
  :param location: Location, Location for the newly added object
5840
6281
  :type location: collections.abc.Sequence[float] | mathutils.Vector | None
5841
6282
  :param rotation: Rotation, Rotation for the newly added object