fake-bpy-module 20250612__py3-none-any.whl → 20260118__py3-none-any.whl
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- {bl_console_utils → _bl_console_utils}/autocomplete/complete_calltip/__init__.pyi +0 -13
- {bl_console_utils → _bl_console_utils}/autocomplete/complete_import/__init__.pyi +0 -5
- {bl_console_utils → _bl_console_utils}/autocomplete/complete_namespace/__init__.pyi +0 -11
- {bl_console_utils → _bl_console_utils}/autocomplete/intellisense/__init__.pyi +0 -10
- {bl_i18n_utils → _bl_i18n_utils}/__init__.pyi +1 -0
- {bl_i18n_utils → _bl_i18n_utils}/bl_extract_messages/__init__.pyi +1 -0
- {bl_i18n_utils → _bl_i18n_utils}/settings/__init__.pyi +3 -1
- {bl_i18n_utils → _bl_i18n_utils}/utils/__init__.pyi +4 -4
- _bl_i18n_utils/utils_spell_check/__init__.pyi +22 -0
- {bl_ui_utils → _bl_ui_utils}/__init__.pyi +1 -0
- _blendfile_header/__init__.pyi +48 -0
- _bpy_internal/__init__.pyi +4 -1
- _bpy_internal/assets/__init__.pyi +5 -0
- _bpy_internal/assets/remote_library_listing/__init__.pyi +5 -0
- _bpy_internal/assets/remote_library_listing/blender_asset_library_openapi/__init__.pyi +13 -0
- _bpy_internal/disk_file_hash_service/__init__.pyi +19 -0
- _bpy_internal/disk_file_hash_service/backend_sqlite/__init__.pyi +48 -0
- _bpy_internal/disk_file_hash_service/hash_service/__init__.pyi +64 -0
- _bpy_internal/disk_file_hash_service/types/__init__.pyi +53 -0
- _bpy_internal/extensions/wheel_manager/__init__.pyi +1 -1
- _bpy_internal/filesystem/__init__.pyi +5 -0
- _bpy_internal/filesystem/locking/__init__.pyi +28 -0
- _bpy_internal/grease_pencil/stroke/__init__.pyi +2 -2
- _bpy_internal/platform/__init__.pyi +5 -0
- _bpy_types/__init__.pyi +1592 -0
- {keyingsets_utils → _keyingsets_utils}/__init__.pyi +2 -0
- {rna_info → _rna_info}/__init__.pyi +4 -2
- addon_utils/__init__.pyi +0 -13
- aud/__init__.pyi +122 -145
- bl_app_templates_system/Storyboarding/__init__.pyi +11 -0
- bl_app_templates_system/__init__.pyi +5 -0
- bl_app_templates_system/py.typed +0 -0
- bl_math/__init__.pyi +3 -13
- bl_operators/__init__.pyi +1 -0
- bl_operators/add_mesh_torus/__init__.pyi +2 -3
- bl_operators/anim/__init__.pyi +62 -38
- bl_operators/assets/__init__.pyi +4 -9
- bl_operators/bone_selection_sets/__init__.pyi +15 -42
- bl_operators/clip/__init__.pyi +12 -31
- bl_operators/connect_to_output/__init__.pyi +2 -3
- bl_operators/console/__init__.pyi +6 -15
- bl_operators/constraint/__init__.pyi +6 -13
- bl_operators/copy_global_transform/__init__.pyi +261 -0
- bl_operators/file/__init__.pyi +6 -11
- bl_operators/freestyle/__init__.pyi +5 -12
- bl_operators/geometry_nodes/__init__.pyi +5 -12
- bl_operators/grease_pencil/__init__.pyi +2 -3
- bl_operators/image/__init__.pyi +6 -15
- bl_operators/image_as_planes/__init__.pyi +3 -10
- bl_operators/mesh/__init__.pyi +3 -49
- bl_operators/node/__init__.pyi +294 -73
- bl_operators/object/__init__.pyi +17 -53
- bl_operators/object_align/__init__.pyi +2 -3
- bl_operators/object_quick_effects/__init__.pyi +5 -12
- bl_operators/object_randomize_transform/__init__.pyi +2 -3
- bl_operators/presets/__init__.pyi +27 -76
- bl_operators/rigidbody/__init__.pyi +4 -9
- bl_operators/screen_play_rendered_anim/__init__.pyi +2 -3
- bl_operators/sequencer/__init__.pyi +12 -27
- bl_operators/spreadsheet/__init__.pyi +2 -3
- bl_operators/userpref/__init__.pyi +26 -75
- bl_operators/uvcalc_follow_active/__init__.pyi +3 -4
- bl_operators/uvcalc_lightmap/__init__.pyi +3 -4
- bl_operators/uvcalc_transform/__init__.pyi +26 -16
- bl_operators/vertexpaint_dirt/__init__.pyi +2 -3
- bl_operators/view3d/__init__.pyi +9 -24
- bl_operators/wm/__init__.pyi +48 -139
- bl_operators/world/__init__.pyi +3 -4
- bl_ui/__init__.pyi +7 -7
- bl_ui/anim/__init__.pyi +2 -3
- bl_ui/asset_shelf/__init__.pyi +2 -3
- bl_ui/generic_ui_list/__init__.pyi +4 -19
- bl_ui/node_add_menu/__init__.pyi +263 -7
- bl_ui/node_add_menu_compositor/__init__.pyi +96 -79
- bl_ui/node_add_menu_geometry/__init__.pyi +309 -270
- bl_ui/node_add_menu_shader/__init__.pyi +49 -49
- bl_ui/node_add_menu_texture/__init__.pyi +17 -62
- bl_ui/properties_collection/__init__.pyi +9 -22
- bl_ui/properties_constraint/__init__.pyi +129 -282
- bl_ui/properties_data_armature/__init__.pyi +22 -57
- bl_ui/properties_data_bone/__init__.pyi +12 -31
- bl_ui/properties_data_camera/__init__.pyi +18 -47
- bl_ui/properties_data_curve/__init__.pyi +18 -47
- bl_ui/properties_data_curves/__init__.pyi +11 -26
- bl_ui/properties_data_empty/__init__.pyi +3 -6
- bl_ui/properties_data_grease_pencil/__init__.pyi +23 -62
- bl_ui/properties_data_lattice/__init__.pyi +7 -14
- bl_ui/properties_data_light/__init__.pyi +13 -32
- bl_ui/properties_data_lightprobe/__init__.pyi +16 -43
- bl_ui/properties_data_mesh/__init__.pyi +47 -62
- bl_ui/properties_data_metaball/__init__.pyi +9 -20
- bl_ui/properties_data_modifier/__init__.pyi +22 -28
- bl_ui/properties_data_pointcloud/__init__.pyi +8 -19
- bl_ui/properties_data_shaderfx/__init__.pyi +2 -3
- bl_ui/properties_data_speaker/__init__.pyi +9 -20
- bl_ui/properties_data_volume/__init__.pyi +12 -29
- bl_ui/properties_freestyle/__init__.pyi +27 -76
- bl_ui/properties_grease_pencil_common/__init__.pyi +10 -168
- bl_ui/properties_mask_common/__init__.pyi +8 -21
- bl_ui/properties_material/__init__.pyi +26 -86
- bl_ui/properties_material_gpencil/__init__.pyi +36 -57
- bl_ui/properties_object/__init__.pyi +59 -65
- bl_ui/properties_output/__init__.pyi +21 -60
- bl_ui/properties_paint_common/__init__.pyi +30 -22
- bl_ui/properties_particle/__init__.pyi +58 -161
- bl_ui/properties_physics_cloth/__init__.pyi +15 -42
- bl_ui/properties_physics_common/__init__.pyi +2 -3
- bl_ui/properties_physics_dynamicpaint/__init__.pyi +23 -66
- bl_ui/properties_physics_field/__init__.pyi +11 -30
- bl_ui/properties_physics_fluid/__init__.pyi +29 -84
- bl_ui/properties_physics_geometry_nodes/__init__.pyi +2 -3
- bl_ui/properties_physics_rigidbody/__init__.pyi +9 -24
- bl_ui/properties_physics_rigidbody_constraint/__init__.pyi +14 -39
- bl_ui/properties_physics_softbody/__init__.pyi +16 -45
- bl_ui/properties_render/__init__.pyi +139 -197
- bl_ui/properties_scene/__init__.pyi +46 -50
- bl_ui/properties_strip/__init__.pyi +744 -0
- bl_ui/properties_strip_modifier/__init__.pyi +45 -0
- bl_ui/properties_texture/__init__.pyi +30 -83
- bl_ui/properties_view_layer/__init__.pyi +84 -39
- bl_ui/properties_workspace/__init__.pyi +6 -13
- bl_ui/properties_world/__init__.pyi +14 -35
- bl_ui/space_clip/__init__.pyi +150 -231
- bl_ui/space_console/__init__.pyi +7 -18
- bl_ui/space_dopesheet/__init__.pyi +143 -100
- bl_ui/space_filebrowser/__init__.pyi +33 -90
- bl_ui/space_graph/__init__.pyi +48 -85
- bl_ui/space_image/__init__.pyi +111 -229
- bl_ui/space_info/__init__.pyi +7 -18
- bl_ui/space_nla/__init__.pyi +44 -73
- bl_ui/space_node/__init__.pyi +161 -123
- bl_ui/space_outliner/__init__.pyi +16 -45
- bl_ui/space_properties/__init__.pyi +34 -10
- bl_ui/space_sequencer/__init__.pyi +164 -901
- bl_ui/space_spreadsheet/__init__.pyi +4 -9
- bl_ui/space_statusbar/__init__.pyi +2 -3
- bl_ui/space_text/__init__.pyi +17 -48
- bl_ui/space_time/__init__.pyi +25 -71
- bl_ui/space_toolsystem_common/__init__.pyi +2 -2
- bl_ui/space_toolsystem_toolbar/__init__.pyi +30 -7
- bl_ui/space_topbar/__init__.pyi +35 -79
- bl_ui/space_userpref/__init__.pyi +185 -321
- bl_ui/space_view3d/__init__.pyi +337 -817
- bl_ui/space_view3d_sidebar/__init__.pyi +127 -0
- bl_ui/space_view3d_toolbar/__init__.pyi +110 -880
- bl_ui/utils/__init__.pyi +0 -17
- blend_render_info/__init__.pyi +1 -0
- blf/__init__.pyi +8 -54
- bmesh/__init__.pyi +2 -9
- bmesh/geometry/__init__.pyi +1 -4
- bmesh/ops/__init__.pyi +125 -508
- bmesh/types/__init__.pyi +318 -664
- bmesh/utils/__init__.pyi +17 -43
- bpy/__init__.pyi +1 -1
- bpy/app/__init__.pyi +93 -88
- bpy/app/handlers/__init__.pyi +19 -19
- bpy/app/icons/__init__.pyi +0 -6
- bpy/app/timers/__init__.pyi +2 -7
- bpy/app/translations/__init__.pyi +8 -23
- bpy/msgbus/__init__.pyi +4 -6
- bpy/ops/action/__init__.pyi +68 -199
- bpy/ops/anim/__init__.pyi +142 -299
- bpy/ops/armature/__init__.pyi +78 -209
- bpy/ops/asset/__init__.pyi +46 -108
- bpy/ops/boid/__init__.pyi +28 -45
- bpy/ops/brush/__init__.pyi +13 -108
- bpy/ops/buttons/__init__.pyi +16 -75
- bpy/ops/cachefile/__init__.pyi +8 -65
- bpy/ops/camera/__init__.pyi +0 -11
- bpy/ops/clip/__init__.pyi +173 -471
- bpy/ops/cloth/__init__.pyi +0 -5
- bpy/ops/collection/__init__.pyi +23 -36
- bpy/ops/console/__init__.pyi +40 -98
- bpy/ops/constraint/__init__.pyi +14 -85
- bpy/ops/curve/__init__.pyi +94 -277
- bpy/ops/curves/__init__.pyi +119 -166
- bpy/ops/cycles/__init__.pyi +4 -15
- bpy/ops/dpaint/__init__.pyi +14 -24
- bpy/ops/ed/__init__.pyi +44 -92
- bpy/ops/export_anim/__init__.pyi +2 -10
- bpy/ops/export_scene/__init__.pyi +16 -170
- bpy/ops/extensions/__init__.pyi +60 -165
- bpy/ops/file/__init__.pyi +110 -246
- bpy/ops/fluid/__init__.pyi +52 -83
- bpy/ops/font/__init__.pyi +40 -144
- bpy/ops/geometry/__init__.pyi +12 -127
- bpy/ops/gizmogroup/__init__.pyi +4 -13
- bpy/ops/gpencil/__init__.pyi +22 -54
- bpy/ops/graph/__init__.pyi +92 -343
- bpy/ops/grease_pencil/__init__.pyi +218 -550
- bpy/ops/image/__init__.pyi +85 -435
- bpy/ops/import_anim/__init__.pyi +3 -17
- bpy/ops/import_curve/__init__.pyi +2 -5
- bpy/ops/import_scene/__init__.pyi +15 -49
- bpy/ops/info/__init__.pyi +16 -39
- bpy/ops/lattice/__init__.pyi +12 -36
- bpy/ops/marker/__init__.pyi +12 -51
- bpy/ops/mask/__init__.pyi +68 -193
- bpy/ops/material/__init__.pyi +18 -18
- bpy/ops/mball/__init__.pyi +4 -31
- bpy/ops/mesh/__init__.pyi +140 -967
- bpy/ops/nla/__init__.pyi +87 -206
- bpy/ops/node/__init__.pyi +714 -744
- bpy/ops/object/__init__.pyi +461 -1341
- bpy/ops/outliner/__init__.pyi +192 -376
- bpy/ops/paint/__init__.pyi +94 -319
- bpy/ops/paintcurve/__init__.pyi +20 -40
- bpy/ops/palette/__init__.pyi +14 -30
- bpy/ops/particle/__init__.pyi +86 -184
- bpy/ops/pointcloud/__init__.pyi +12 -38
- bpy/ops/pose/__init__.pyi +108 -261
- bpy/ops/poselib/__init__.pyi +32 -67
- bpy/ops/preferences/__init__.pyi +37 -187
- bpy/ops/ptcache/__init__.pyi +22 -36
- bpy/ops/render/__init__.pyi +20 -72
- bpy/ops/rigidbody/__init__.pyi +25 -63
- bpy/ops/scene/__init__.pyi +122 -181
- bpy/ops/screen/__init__.pyi +93 -221
- bpy/ops/script/__init__.pyi +4 -13
- bpy/ops/sculpt/__init__.pyi +69 -324
- bpy/ops/sculpt_curves/__init__.pyi +10 -23
- bpy/ops/sequencer/__init__.pyi +410 -730
- bpy/ops/sound/__init__.pyi +16 -114
- bpy/ops/spreadsheet/__init__.pyi +20 -37
- bpy/ops/surface/__init__.pyi +0 -48
- bpy/ops/text/__init__.pyi +112 -250
- bpy/ops/text_editor/__init__.pyi +0 -5
- bpy/ops/texture/__init__.pyi +14 -21
- bpy/ops/transform/__init__.pyi +18 -386
- bpy/ops/ui/__init__.pyi +117 -188
- bpy/ops/uilist/__init__.pyi +0 -13
- bpy/ops/uv/__init__.pyi +238 -305
- bpy/ops/view2d/__init__.pyi +16 -76
- bpy/ops/view3d/__init__.pyi +153 -377
- bpy/ops/wm/__init__.pyi +277 -1397
- bpy/ops/workspace/__init__.pyi +32 -39
- bpy/ops/world/__init__.pyi +10 -12
- bpy/path/__init__.pyi +1 -35
- bpy/props/__init__.pyi +347 -218
- bpy/stub_internal/rna_enums/__init__.pyi +142 -108
- bpy/types/__init__.pyi +77367 -101305
- bpy/utils/__init__.pyi +11 -82
- bpy/utils/previews/__init__.pyi +2 -11
- bpy/utils/units/__init__.pyi +5 -15
- bpy_extras/anim_utils/__init__.pyi +24 -16
- bpy_extras/bmesh_utils/__init__.pyi +0 -1
- bpy_extras/id_map_utils/__init__.pyi +14 -6
- bpy_extras/image_utils/__init__.pyi +2 -11
- bpy_extras/io_utils/__init__.pyi +8 -27
- bpy_extras/keyconfig_utils/__init__.pyi +1 -1
- bpy_extras/mesh_utils/__init__.pyi +0 -12
- bpy_extras/node_shader_utils/__init__.pyi +1 -9
- bpy_extras/object_utils/__init__.pyi +1 -15
- bpy_extras/view3d_utils/__init__.pyi +0 -18
- bpy_extras/wm_utils/progress_report/__init__.pyi +1 -1
- {fake_bpy_module-20250612.dist-info → fake_bpy_module-20260118.dist-info}/METADATA +4 -1
- fake_bpy_module-20260118.dist-info/RECORD +385 -0
- {fake_bpy_module-20250612.dist-info → fake_bpy_module-20260118.dist-info}/top_level.txt +17 -16
- freestyle/chainingiterators/__init__.pyi +5 -27
- freestyle/functions/__init__.pyi +0 -139
- freestyle/predicates/__init__.pyi +2 -53
- freestyle/shaders/__init__.pyi +15 -81
- freestyle/types/__init__.pyi +159 -799
- freestyle/utils/ContextFunctions/__init__.pyi +0 -23
- freestyle/utils/__init__.pyi +5 -11
- gpu/capabilities/__init__.pyi +0 -21
- gpu/matrix/__init__.pyi +1 -10
- gpu/platform/__init__.pyi +2 -7
- gpu/shader/__init__.pyi +26 -9
- gpu/state/__init__.pyi +60 -39
- gpu/texture/__init__.pyi +3 -5
- gpu/types/__init__.pyi +116 -184
- gpu_extras/batch/__init__.pyi +1 -5
- gpu_extras/presets/__init__.pyi +6 -8
- idprop/types/__init__.pyi +6 -6
- imbuf/__init__.pyi +3 -10
- imbuf/types/__init__.pyi +7 -21
- keyingsets_builtins/__init__.pyi +24 -67
- mathutils/__init__.pyi +241 -2207
- mathutils/bvhtree/__init__.pyi +18 -26
- mathutils/geometry/__init__.pyi +82 -132
- mathutils/interpolate/__init__.pyi +6 -5
- mathutils/kdtree/__init__.pyi +1 -11
- mathutils/noise/__init__.pyi +61 -106
- rna_prop_ui/__init__.pyi +1 -1
- bgl/__init__.pyi +0 -4256
- bpy_types/__init__.pyi +0 -30
- fake_bpy_module-20250612.dist-info/RECORD +0 -367
- {animsys_refactor → _animsys_refactor}/__init__.pyi +0 -0
- {animsys_refactor → _animsys_refactor}/py.typed +0 -0
- {bl_console_utils → _bl_console_utils}/__init__.pyi +0 -0
- {bl_console_utils → _bl_console_utils}/autocomplete/__init__.pyi +0 -0
- {bgl → _bl_console_utils}/py.typed +0 -0
- {bl_i18n_utils → _bl_i18n_utils}/merge_po/__init__.pyi +0 -0
- {bl_console_utils → _bl_i18n_utils}/py.typed +0 -0
- {bl_i18n_utils → _bl_i18n_utils}/utils_cli/__init__.pyi +0 -0
- {bl_i18n_utils → _bl_i18n_utils}/utils_languages_menu/__init__.pyi +0 -0
- {bl_i18n_utils → _bl_i18n_utils}/utils_rtl/__init__.pyi +0 -0
- {bl_previews_utils → _bl_previews_utils}/__init__.pyi +0 -0
- {bl_previews_utils → _bl_previews_utils}/bl_previews_render/__init__.pyi +0 -0
- {bl_i18n_utils → _bl_previews_utils}/py.typed +0 -0
- {bl_rna_utils → _bl_rna_utils}/__init__.pyi +0 -0
- {bl_rna_utils → _bl_rna_utils}/data_path/__init__.pyi +0 -0
- {bl_previews_utils → _bl_rna_utils}/py.typed +0 -0
- {bl_text_utils → _bl_text_utils}/__init__.pyi +0 -0
- {bl_text_utils → _bl_text_utils}/external_editor/__init__.pyi +0 -0
- {bl_rna_utils → _bl_text_utils}/py.typed +0 -0
- {bl_ui_utils → _bl_ui_utils}/layout/__init__.pyi +0 -0
- {bl_text_utils → _bl_ui_utils}/py.typed +0 -0
- {bl_ui_utils → _blendfile_header}/py.typed +0 -0
- /_bpy_internal/{freedesktop → platform/freedesktop}/__init__.pyi +0 -0
- {bpy_restrict_state → _bpy_restrict_state}/__init__.pyi +0 -0
- {bpy_restrict_state → _bpy_restrict_state}/py.typed +0 -0
- {bpy_types → _bpy_types}/py.typed +0 -0
- {console_python → _console_python}/__init__.pyi +0 -0
- {console_python → _console_python}/py.typed +0 -0
- {console_shell → _console_shell}/__init__.pyi +0 -0
- {console_shell → _console_shell}/py.typed +0 -0
- {graphviz_export → _graphviz_export}/__init__.pyi +0 -0
- {graphviz_export → _graphviz_export}/py.typed +0 -0
- {keyingsets_utils → _keyingsets_utils}/py.typed +0 -0
- {rna_info → _rna_info}/py.typed +0 -0
- {rna_xml → _rna_xml}/__init__.pyi +0 -0
- {rna_xml → _rna_xml}/py.typed +0 -0
- {fake_bpy_module-20250612.dist-info → fake_bpy_module-20260118.dist-info}/WHEEL +0 -0
bpy/utils/__init__.pyi
CHANGED
|
@@ -23,41 +23,32 @@ def app_template_paths(*, path: str | None = None) -> None:
|
|
|
23
23
|
"""Returns valid application template paths.
|
|
24
24
|
|
|
25
25
|
:param path: Optional subdir.
|
|
26
|
-
:type path: str | None
|
|
27
26
|
:return: App template paths.
|
|
28
27
|
"""
|
|
29
28
|
|
|
30
29
|
def blend_paths(
|
|
31
|
-
absolute: bool = False, packed: bool = False, local: bool = False
|
|
30
|
+
*, absolute: bool = False, packed: bool = False, local: bool = False
|
|
32
31
|
) -> list[str]:
|
|
33
32
|
"""Returns a list of paths to external files referenced by the loaded .blend file.
|
|
34
33
|
|
|
35
34
|
:param absolute: When true the paths returned are made absolute.
|
|
36
|
-
:
|
|
37
|
-
:param packed: When true skip file paths for packed data.
|
|
38
|
-
:type packed: bool
|
|
35
|
+
:param packed: When true include file paths for packed data.
|
|
39
36
|
:param local: When true skip linked library paths.
|
|
40
|
-
:type local: bool
|
|
41
37
|
:return: path list.
|
|
42
|
-
:rtype: list[str]
|
|
43
38
|
"""
|
|
44
39
|
|
|
45
40
|
def escape_identifier(string: str) -> str:
|
|
46
41
|
"""Simple string escaping function used for animation paths.
|
|
47
42
|
|
|
48
43
|
:param string: text
|
|
49
|
-
:type string: str
|
|
50
44
|
:return: The escaped string.
|
|
51
|
-
:rtype: str
|
|
52
45
|
"""
|
|
53
46
|
|
|
54
47
|
def execfile(filepath: str, *, mod: None | None = None) -> None:
|
|
55
48
|
"""Execute a file path as a Python script.
|
|
56
49
|
|
|
57
50
|
:param filepath: Path of the script to execute.
|
|
58
|
-
:type filepath: str
|
|
59
51
|
:param mod: Optional cached module, the result of a previous execution.
|
|
60
|
-
:type mod: None | None
|
|
61
52
|
:return: The module which can be passed back in as mod.
|
|
62
53
|
"""
|
|
63
54
|
|
|
@@ -72,41 +63,30 @@ def extension_path_user(package: str, *, path: str = "", create: bool = False) -
|
|
|
72
63
|
"""Return a user writable directory associated with an extension.
|
|
73
64
|
|
|
74
65
|
:param package: The __package__ of the extension.
|
|
75
|
-
:type package: str
|
|
76
66
|
:param path: Optional subdirectory.
|
|
77
|
-
:type path: str
|
|
78
67
|
:param create: Treat the path as a directory and create it if its not existing.
|
|
79
|
-
:type create: bool
|
|
80
68
|
:return: a path.
|
|
81
|
-
:rtype: str
|
|
82
69
|
"""
|
|
83
70
|
|
|
84
|
-
def flip_name(name: str, strip_digits: bool = False) -> str:
|
|
71
|
+
def flip_name(name: str, *, strip_digits: bool = False) -> str:
|
|
85
72
|
"""Flip a name between left/right sides, useful for
|
|
86
73
|
mirroring bone names.
|
|
87
74
|
|
|
88
75
|
:param name: Bone name to flip.
|
|
89
|
-
:type name: str
|
|
90
76
|
:param strip_digits: Whether to remove .### suffix.
|
|
91
|
-
:type strip_digits: bool
|
|
92
77
|
:return: The flipped name.
|
|
93
|
-
:rtype: str
|
|
94
78
|
"""
|
|
95
79
|
|
|
96
80
|
def is_path_builtin(path: str) -> bool:
|
|
97
81
|
"""Returns True if the path is one of the built-in paths used by Blender.
|
|
98
82
|
|
|
99
83
|
:param path: Path you want to check if it is in the built-in settings directory
|
|
100
|
-
:type path: str
|
|
101
|
-
:rtype: bool
|
|
102
84
|
"""
|
|
103
85
|
|
|
104
86
|
def is_path_extension(path: str) -> bool:
|
|
105
87
|
"""Returns True if the path is from an extensions repository.
|
|
106
88
|
|
|
107
89
|
:param path: Path to check if it is within an extension repository.
|
|
108
|
-
:type path: str
|
|
109
|
-
:rtype: bool
|
|
110
90
|
"""
|
|
111
91
|
|
|
112
92
|
def keyconfig_init() -> None: ...
|
|
@@ -121,12 +101,9 @@ def load_scripts(
|
|
|
121
101
|
|
|
122
102
|
:param reload_scripts: Causes all scripts to have their unregister method
|
|
123
103
|
called before loading.
|
|
124
|
-
:type reload_scripts: bool
|
|
125
104
|
:param refresh_scripts: only load scripts which are not already loaded
|
|
126
105
|
as modules.
|
|
127
|
-
:type refresh_scripts: bool
|
|
128
106
|
:param extensions: Loads additional scripts (add-ons & app-templates).
|
|
129
|
-
:type extensions: bool
|
|
130
107
|
"""
|
|
131
108
|
|
|
132
109
|
def load_scripts_extensions(*, reload_scripts: bool = False) -> None:
|
|
@@ -134,7 +111,6 @@ def load_scripts_extensions(*, reload_scripts: bool = False) -> None:
|
|
|
134
111
|
|
|
135
112
|
:param reload_scripts: Causes all scripts to have their unregister method
|
|
136
113
|
called before loading.
|
|
137
|
-
:type reload_scripts: bool
|
|
138
114
|
"""
|
|
139
115
|
|
|
140
116
|
def make_rna_paths(
|
|
@@ -143,15 +119,11 @@ def make_rna_paths(
|
|
|
143
119
|
"""Create RNA "paths" from given names.
|
|
144
120
|
|
|
145
121
|
:param struct_name: Name of a RNA struct (like e.g. "Scene").
|
|
146
|
-
:
|
|
147
|
-
:param prop_name: Name of a RNA struct's property.
|
|
148
|
-
:type prop_name: str
|
|
122
|
+
:param prop_name: Name of a RNA structs property.
|
|
149
123
|
:param enum_name: Name of a RNA enum identifier.
|
|
150
|
-
:type enum_name: str
|
|
151
124
|
:return: A triple of three "RNA paths"
|
|
152
|
-
(most_complete_path, "struct.prop", "struct.prop:
|
|
125
|
+
(most_complete_path, "struct.prop", "struct.prop:enum").
|
|
153
126
|
If no enum_name is given, the third element will always be void.
|
|
154
|
-
:rtype: tuple[str, str, str]
|
|
155
127
|
"""
|
|
156
128
|
|
|
157
129
|
def manual_language_code(default="en") -> str:
|
|
@@ -159,19 +131,16 @@ def manual_language_code(default="en") -> str:
|
|
|
159
131
|
|
|
160
132
|
:return: The language code used for user manual URL component based on the current language user-preference,
|
|
161
133
|
falling back to the default when unavailable.
|
|
162
|
-
:rtype: str
|
|
163
134
|
"""
|
|
164
135
|
|
|
165
136
|
def manual_map() -> None: ...
|
|
166
|
-
def modules_from_path(path: str, loaded_modules) -> list:
|
|
137
|
+
def modules_from_path(path: str, loaded_modules: set) -> list:
|
|
167
138
|
"""Load all modules in a path and return them as a list.
|
|
168
139
|
|
|
169
140
|
:param path: this path is scanned for scripts and packages.
|
|
170
|
-
:type path: str
|
|
171
141
|
:param loaded_modules: already loaded module names, files matching these
|
|
172
142
|
names will be ignored.
|
|
173
143
|
:return: all loaded modules.
|
|
174
|
-
:rtype: list
|
|
175
144
|
"""
|
|
176
145
|
|
|
177
146
|
def preset_find(name, preset_path, *, display_name=False, ext=".py") -> None: ...
|
|
@@ -179,9 +148,7 @@ def preset_paths(subdir: str) -> list[str]:
|
|
|
179
148
|
"""Returns a list of paths for a specific preset.
|
|
180
149
|
|
|
181
150
|
:param subdir: preset subdirectory (must not be an absolute path).
|
|
182
|
-
:type subdir: str
|
|
183
151
|
:return: Script paths.
|
|
184
|
-
:rtype: list[str]
|
|
185
152
|
"""
|
|
186
153
|
|
|
187
154
|
def refresh_script_paths() -> None:
|
|
@@ -208,7 +175,6 @@ def register_class(
|
|
|
208
175
|
"""Register a subclass of a Blender type class.
|
|
209
176
|
|
|
210
177
|
:param cls: Registerable Blender class type.
|
|
211
|
-
:type cls: type[bpy.types.Panel | bpy.types.UIList | bpy.types.Menu | bpy.types.Header | bpy.types.Operator | bpy.types.KeyingSetInfo | bpy.types.RenderEngine | bpy.types.AssetShelf | bpy.types.FileHandler | bpy.types.PropertyGroup | bpy.types.AddonPreferences | bpy.types.NodeTree | bpy.types.Node | bpy.types.NodeSocket]
|
|
212
178
|
"""
|
|
213
179
|
|
|
214
180
|
def register_classes_factory(classes) -> None:
|
|
@@ -225,14 +191,12 @@ def register_cli_command(id: str, execute: collections.abc.Callable) -> None:
|
|
|
225
191
|
:param id: The command identifier (must pass an str.isidentifier check).
|
|
226
192
|
|
|
227
193
|
If the id is already registered, a warning is printed and the command is inaccessible to prevent accidents invoking the wrong command.
|
|
228
|
-
:type id: str
|
|
229
194
|
:param execute: Callback, taking a single list of strings and returns an int.
|
|
230
195
|
The arguments are built from all command-line arguments following the command id.
|
|
231
196
|
The return value should be 0 for success, 1 on failure (specific error codes from the os module can also be used).
|
|
232
|
-
:type execute: collections.abc.Callable
|
|
233
197
|
:return: The command handle which can be passed to `unregister_cli_command`.
|
|
234
198
|
|
|
235
|
-
This uses
|
|
199
|
+
This uses Pythons capsule type however the result should be considered an opaque handle only used for unregistering.
|
|
236
200
|
"""
|
|
237
201
|
|
|
238
202
|
def register_manual_map(manual_hook) -> None: ...
|
|
@@ -247,9 +211,7 @@ def register_preset_path(path: str) -> bool:
|
|
|
247
211
|
When the __init__.py is in the same location as a presets directory.
|
|
248
212
|
For example an operators preset would be located under: presets/operator/{operator.id}/
|
|
249
213
|
where operator.id is the bl_idname of the operator.
|
|
250
|
-
:type path: str
|
|
251
214
|
:return: success
|
|
252
|
-
:rtype: bool
|
|
253
215
|
"""
|
|
254
216
|
|
|
255
217
|
def register_submodule_factory(
|
|
@@ -260,45 +222,34 @@ def register_submodule_factory(
|
|
|
260
222
|
calling their register & unregister functions.
|
|
261
223
|
|
|
262
224
|
:param module_name: The module name, typically __name__.
|
|
263
|
-
:type module_name: str
|
|
264
225
|
:param submodule_names: List of submodule names to load and unload.
|
|
265
|
-
:type submodule_names: list[str]
|
|
266
226
|
:return: register and unregister functions.
|
|
267
|
-
:rtype: tuple[collections.abc.Callable[None], collections.abc.Callable[None]]
|
|
268
227
|
"""
|
|
269
228
|
|
|
270
229
|
def register_tool(
|
|
271
230
|
tool_cls: type[bpy.types.WorkSpaceTool],
|
|
272
231
|
*,
|
|
273
|
-
after: None | collections.abc.Sequence[str] | None = None,
|
|
232
|
+
after: None | collections.abc.Sequence[str] | set[str] | None = None,
|
|
274
233
|
separator: bool = False,
|
|
275
234
|
group: bool = False,
|
|
276
235
|
) -> None:
|
|
277
236
|
"""Register a tool in the toolbar.
|
|
278
237
|
|
|
279
238
|
:param tool_cls: A tool subclass.
|
|
280
|
-
:type tool_cls: type[bpy.types.WorkSpaceTool]
|
|
281
239
|
:param after: Optional identifiers this tool will be added after.
|
|
282
|
-
:type after: None | collections.abc.Sequence[str] | None
|
|
283
240
|
:param separator: When true, add a separator before this tool.
|
|
284
|
-
:type separator: bool
|
|
285
241
|
:param group: When true, add a new nested group of tools.
|
|
286
|
-
:type group: bool
|
|
287
242
|
"""
|
|
288
243
|
|
|
289
244
|
def resource_path(
|
|
290
|
-
type: str, major: int = bpy.app.version[0], minor:
|
|
245
|
+
type: str, *, major: int = bpy.app.version[0], minor: int = bpy.app.version[1]
|
|
291
246
|
) -> str:
|
|
292
247
|
"""Return the base path for storing system files.
|
|
293
248
|
|
|
294
|
-
:param type: string in [
|
|
295
|
-
:type type: str
|
|
249
|
+
:param type: string in [USER, LOCAL, SYSTEM].
|
|
296
250
|
:param major: major version, defaults to current.
|
|
297
|
-
:type major: int
|
|
298
251
|
:param minor: minor version, defaults to current.
|
|
299
|
-
:type minor: str
|
|
300
252
|
:return: the resource path (not necessarily existing).
|
|
301
|
-
:rtype: str
|
|
302
253
|
"""
|
|
303
254
|
|
|
304
255
|
def script_path_user() -> None:
|
|
@@ -315,17 +266,11 @@ def script_paths(
|
|
|
315
266
|
"""Returns a list of valid script paths.
|
|
316
267
|
|
|
317
268
|
:param subdir: Optional subdir.
|
|
318
|
-
:type subdir: str | None
|
|
319
269
|
:param user_pref: Include the user preference script paths.
|
|
320
|
-
:type user_pref: bool
|
|
321
270
|
:param check_all: Include local, user and system paths rather just the paths Blender uses.
|
|
322
|
-
:type check_all: bool
|
|
323
271
|
:param use_user: Include user paths
|
|
324
|
-
:type use_user: bool
|
|
325
272
|
:param use_system_environment: Include BLENDER_SYSTEM_SCRIPTS variable path
|
|
326
|
-
:type use_system_environment: bool
|
|
327
273
|
:return: script paths.
|
|
328
|
-
:rtype: list[str]
|
|
329
274
|
"""
|
|
330
275
|
|
|
331
276
|
def script_paths_pref() -> None:
|
|
@@ -339,9 +284,7 @@ def smpte_from_frame(frame: float, *, fps=None, fps_base=None) -> str:
|
|
|
339
284
|
HH:MM:SS:FF.If fps and fps_base are not given the current scene is used.
|
|
340
285
|
|
|
341
286
|
:param frame: frame number.
|
|
342
|
-
:type frame: float
|
|
343
287
|
:return: the frame string.
|
|
344
|
-
:rtype: str
|
|
345
288
|
"""
|
|
346
289
|
|
|
347
290
|
def smpte_from_seconds(time: float, *, fps=None, fps_base=None) -> str:
|
|
@@ -349,16 +292,13 @@ def smpte_from_seconds(time: float, *, fps=None, fps_base=None) -> str:
|
|
|
349
292
|
HH:MM:SS:FF.If fps and fps_base are not given the current scene is used.
|
|
350
293
|
|
|
351
294
|
:param time: time in seconds.
|
|
352
|
-
:type time: float
|
|
353
295
|
:return: the frame string.
|
|
354
|
-
:rtype: str
|
|
355
296
|
"""
|
|
356
297
|
|
|
357
298
|
def time_from_frame(frame: float, *, fps=None, fps_base=None) -> None:
|
|
358
299
|
"""Returns the time from a frame number .If fps and fps_base are not given the current scene is used.
|
|
359
300
|
|
|
360
301
|
:param frame: number.
|
|
361
|
-
:type frame: float
|
|
362
302
|
:return: the time in seconds.
|
|
363
303
|
"""
|
|
364
304
|
|
|
@@ -367,9 +307,7 @@ def time_to_frame(time: float, *, fps=None, fps_base=None) -> float:
|
|
|
367
307
|
as a datetime.timedelta object.If fps and fps_base are not given the current scene is used.
|
|
368
308
|
|
|
369
309
|
:param time: time in seconds.
|
|
370
|
-
:type time: float
|
|
371
310
|
:return: The frame.
|
|
372
|
-
:rtype: float
|
|
373
311
|
"""
|
|
374
312
|
|
|
375
313
|
def unescape_identifier(string: str) -> str:
|
|
@@ -377,9 +315,7 @@ def unescape_identifier(string: str) -> str:
|
|
|
377
315
|
This performs the reverse of `escape_identifier`.
|
|
378
316
|
|
|
379
317
|
:param string: text
|
|
380
|
-
:type string: str
|
|
381
318
|
:return: The un-escaped string.
|
|
382
|
-
:rtype: str
|
|
383
319
|
"""
|
|
384
320
|
|
|
385
321
|
def unregister_class(
|
|
@@ -405,7 +341,6 @@ def unregister_class(
|
|
|
405
341
|
:param cls: Blender type class,
|
|
406
342
|
see `bpy.utils.register_class` for classes which can
|
|
407
343
|
be registered.
|
|
408
|
-
:type cls: type[bpy.types.Panel | bpy.types.UIList | bpy.types.Menu | bpy.types.Header | bpy.types.Operator | bpy.types.KeyingSetInfo | bpy.types.RenderEngine | bpy.types.AssetShelf | bpy.types.FileHandler | bpy.types.PropertyGroup | bpy.types.AddonPreferences | bpy.types.NodeTree | bpy.types.Node | bpy.types.NodeSocket]
|
|
409
344
|
"""
|
|
410
345
|
|
|
411
346
|
def unregister_cli_command(handle) -> None:
|
|
@@ -421,21 +356,15 @@ def unregister_preset_path(path: str) -> bool:
|
|
|
421
356
|
:param path: preset directory (must be an absolute path).
|
|
422
357
|
|
|
423
358
|
This must match the registered path exactly.
|
|
424
|
-
:type path: str
|
|
425
359
|
:return: success
|
|
426
|
-
:rtype: bool
|
|
427
360
|
"""
|
|
428
361
|
|
|
429
362
|
def unregister_tool(tool_cls) -> None: ...
|
|
430
363
|
def user_resource(resource_type: str, *, path: str = "", create: bool = False) -> str:
|
|
431
364
|
"""Return a user resource path (normally from the users home directory).
|
|
432
365
|
|
|
433
|
-
:param resource_type: Resource type in [
|
|
434
|
-
:type resource_type: str
|
|
366
|
+
:param resource_type: Resource type in [DATAFILES, CONFIG, SCRIPTS, EXTENSIONS].
|
|
435
367
|
:param path: Optional subdirectory.
|
|
436
|
-
:type path: str
|
|
437
368
|
:param create: Treat the path as a directory and create it if its not existing.
|
|
438
|
-
:type create: bool
|
|
439
369
|
:return: a path.
|
|
440
|
-
:rtype: str
|
|
441
370
|
"""
|
bpy/utils/previews/__init__.pyi
CHANGED
|
@@ -20,7 +20,7 @@ import numpy.typing as npt
|
|
|
20
20
|
import bpy.types
|
|
21
21
|
|
|
22
22
|
class ImagePreviewCollection(dict[str, bpy.types.ImagePreview]):
|
|
23
|
-
"""Dictionary-like class of previews.This is a subclass of
|
|
23
|
+
"""Dictionary-like class of previews.This is a subclass of Pythons built-in dict type,
|
|
24
24
|
used to store multiple image previews.
|
|
25
25
|
"""
|
|
26
26
|
|
|
@@ -40,36 +40,27 @@ class ImagePreviewCollection(dict[str, bpy.types.ImagePreview]):
|
|
|
40
40
|
"""Generate a new preview from given file path.
|
|
41
41
|
|
|
42
42
|
:param name: The name (unique id) identifying the preview.
|
|
43
|
-
:type name: str | None
|
|
44
43
|
:param filepath: The file path to generate the preview from.
|
|
45
|
-
:
|
|
46
|
-
:param filetype: The type of file, needed to generate the preview in ['IMAGE', 'MOVIE', 'BLEND', 'FONT'].
|
|
47
|
-
:type filetype: str | None
|
|
44
|
+
:param filetype: The type of file, needed to generate the preview in [IMAGE, MOVIE, BLEND, FONT, OBJECT_IO].
|
|
48
45
|
:param force_reload: If True, force running thumbnail manager even if preview already exists in cache.
|
|
49
|
-
:type force_reload: bool | None
|
|
50
46
|
:return: The Preview matching given name, or a new empty one.
|
|
51
|
-
:rtype: bpy.types.ImagePreview
|
|
52
47
|
"""
|
|
53
48
|
|
|
54
49
|
def new(self, name: str | None) -> bpy.types.ImagePreview:
|
|
55
50
|
"""Generate a new empty preview.
|
|
56
51
|
|
|
57
52
|
:param name: The name (unique id) identifying the preview.
|
|
58
|
-
:type name: str | None
|
|
59
53
|
:return: The Preview matching given name, or a new empty one.
|
|
60
|
-
:rtype: bpy.types.ImagePreview
|
|
61
54
|
"""
|
|
62
55
|
|
|
63
56
|
def new() -> ImagePreviewCollection:
|
|
64
57
|
"""
|
|
65
58
|
|
|
66
59
|
:return: a new preview collection.
|
|
67
|
-
:rtype: ImagePreviewCollection
|
|
68
60
|
"""
|
|
69
61
|
|
|
70
62
|
def remove(pcoll: ImagePreviewCollection | None) -> None:
|
|
71
63
|
"""Remove the specified previews collection.
|
|
72
64
|
|
|
73
65
|
:param pcoll: Preview collection to close.
|
|
74
|
-
:type pcoll: ImagePreviewCollection | None
|
|
75
66
|
"""
|
bpy/utils/units/__init__.pyi
CHANGED
|
@@ -12,6 +12,7 @@ def to_string(
|
|
|
12
12
|
unit_system: str | None,
|
|
13
13
|
unit_category: str | None,
|
|
14
14
|
value: float | None,
|
|
15
|
+
*,
|
|
15
16
|
precision: int | None = 3,
|
|
16
17
|
split_unit: bool | None = False,
|
|
17
18
|
compatible_unit: bool | None = False,
|
|
@@ -19,47 +20,36 @@ def to_string(
|
|
|
19
20
|
"""Convert a given input float value into a string with units.
|
|
20
21
|
|
|
21
22
|
:param unit_system: The unit system, from `bpy.utils.units.systems`.
|
|
22
|
-
:type unit_system: str | None
|
|
23
23
|
:param unit_category: The category of data we are converting (length, area, rotation, etc.),
|
|
24
24
|
from `bpy.utils.units.categories`.
|
|
25
|
-
:type unit_category: str | None
|
|
26
25
|
:param value: The value to convert to a string.
|
|
27
|
-
:type value: float | None
|
|
28
26
|
:param precision: Number of digits after the comma.
|
|
29
|
-
:type precision: int | None
|
|
30
27
|
:param split_unit: Whether to use several units if needed (1m1cm), or always only one (1.01m).
|
|
31
|
-
:
|
|
32
|
-
:param compatible_unit: Whether to use keyboard-friendly units (1m2) or nicer UTF8 ones (1m²).
|
|
33
|
-
:type compatible_unit: bool | None
|
|
28
|
+
:param compatible_unit: Whether to use keyboard-friendly units (1m2) or nicer UTF8 ones (1m).
|
|
34
29
|
:return: The converted string.
|
|
35
|
-
:rtype: str
|
|
36
30
|
"""
|
|
37
31
|
|
|
38
32
|
def to_value(
|
|
39
33
|
unit_system: str | None,
|
|
40
34
|
unit_category: str | None,
|
|
41
35
|
str_input: str | None,
|
|
36
|
+
*,
|
|
42
37
|
str_ref_unit: None | str | None = None,
|
|
43
38
|
) -> float:
|
|
44
39
|
"""Convert a given input string into a float value.
|
|
45
40
|
|
|
46
41
|
:param unit_system: The unit system, from `bpy.utils.units.systems`.
|
|
47
|
-
:type unit_system: str | None
|
|
48
42
|
:param unit_category: The category of data we are converting (length, area, rotation, etc.),
|
|
49
43
|
from `bpy.utils.units.categories`.
|
|
50
|
-
:type unit_category: str | None
|
|
51
44
|
:param str_input: The string to convert to a float value.
|
|
52
|
-
:type str_input: str | None
|
|
53
45
|
:param str_ref_unit: A reference string from which to extract a default unit, if none is found in str_input.
|
|
54
|
-
:type str_ref_unit: None | str | None
|
|
55
46
|
:return: The converted/interpreted value.
|
|
56
|
-
:rtype: float
|
|
57
47
|
"""
|
|
58
48
|
|
|
59
49
|
categories: typing.Any
|
|
60
|
-
""" Constant value bpy.utils.units.categories(NONE=
|
|
50
|
+
""" Constant value bpy.utils.units.categories(NONE=NONE, LENGTH=LENGTH, AREA=AREA, VOLUME=VOLUME, MASS=MASS, ROTATION=ROTATION, TIME=TIME, TIME_ABSOLUTE=TIME_ABSOLUTE, VELOCITY=VELOCITY, ACCELERATION=ACCELERATION, CAMERA=CAMERA, POWER=POWER, TEMPERATURE=TEMPERATURE, WAVELENGTH=WAVELENGTH, COLOR_TEMPERATURE=COLOR_TEMPERATURE, FREQUENCY=FREQUENCY)
|
|
61
51
|
"""
|
|
62
52
|
|
|
63
53
|
systems: typing.Any
|
|
64
|
-
""" Constant value bpy.utils.units.systems(NONE=
|
|
54
|
+
""" Constant value bpy.utils.units.systems(NONE=NONE, METRIC=METRIC, IMPERIAL=IMPERIAL)
|
|
65
55
|
"""
|
|
@@ -4,6 +4,9 @@ import typing_extensions
|
|
|
4
4
|
import numpy.typing as npt
|
|
5
5
|
import bpy.types
|
|
6
6
|
|
|
7
|
+
class AutoKeying:
|
|
8
|
+
"""Auto-keying support.Retrieve the lock status for 4D rotation."""
|
|
9
|
+
|
|
7
10
|
class BakeOptions:
|
|
8
11
|
"""BakeOptions(only_selected: bool, do_pose: bool, do_object: bool, do_visual_keying: bool, do_constraint_clear: bool, do_parents_clear: bool, do_clean: bool, do_location: bool, do_rotation: bool, do_scale: bool, do_bbone: bool, do_custom_props: bool)"""
|
|
9
12
|
|
|
@@ -40,30 +43,31 @@ class KeyframesCo:
|
|
|
40
43
|
"""
|
|
41
44
|
|
|
42
45
|
def insert_keyframes_into_existing_action(
|
|
43
|
-
self, lookup_fcurves, total_new_keys,
|
|
46
|
+
self, lookup_fcurves, total_new_keys, channelbag
|
|
44
47
|
) -> None:
|
|
45
48
|
"""Assumes the action already exists, that it might already have F-curves. Otherwise, the
|
|
46
49
|
only difference between versions is performance and implementation simplicity.
|
|
47
50
|
|
|
48
51
|
:param lookup_fcurves: : This is only used for efficiency.
|
|
49
|
-
|
|
52
|
+
Its a substitute for channelbag.fcurves.find() which is a potentially expensive linear search.
|
|
50
53
|
:param total_new_keys:
|
|
51
|
-
:param
|
|
52
|
-
:param action_slot:
|
|
54
|
+
:param channelbag:
|
|
53
55
|
"""
|
|
54
56
|
|
|
55
57
|
def insert_keyframes_into_new_action(
|
|
56
|
-
self, total_new_keys,
|
|
58
|
+
self, total_new_keys, channelbag, group_name
|
|
57
59
|
) -> None:
|
|
58
60
|
"""Assumes the action is new, that it has no F-curves. Otherwise, the only difference between versions is
|
|
59
61
|
performance and implementation simplicity.
|
|
60
62
|
|
|
61
63
|
:param total_new_keys:
|
|
62
|
-
:param
|
|
63
|
-
:param
|
|
64
|
-
:type action_group_name: str
|
|
64
|
+
:param channelbag:
|
|
65
|
+
:param group_name: Name of the Group that F-curves are added to.
|
|
65
66
|
"""
|
|
66
67
|
|
|
68
|
+
def action_ensure_channelbag_for_slot(action, slot) -> None:
|
|
69
|
+
"""Ensure a layer and a keyframe strip exists, then ensure that strip has a channelbag for the slot."""
|
|
70
|
+
|
|
67
71
|
def action_get_channelbag_for_slot(action, slot) -> None:
|
|
68
72
|
"""Returns the first channelbag found for the slot.
|
|
69
73
|
In case there are multiple layers or strips they are iterated until a
|
|
@@ -71,21 +75,29 @@ def action_get_channelbag_for_slot(action, slot) -> None:
|
|
|
71
75
|
|
|
72
76
|
"""
|
|
73
77
|
|
|
78
|
+
def action_get_first_suitable_slot(action, target_id_type) -> None:
|
|
79
|
+
"""Return the first Slot of the given Action thats suitable for the given ID type.Typically you should not need this function; when an Action is assigned to a
|
|
80
|
+
data-block, just use the slot that was assigned along with it.
|
|
81
|
+
|
|
82
|
+
"""
|
|
83
|
+
|
|
84
|
+
def animdata_get_channelbag_for_assigned_slot(anim_data) -> None:
|
|
85
|
+
"""Return the channelbag used in the given anim_data or None if there is no Action
|
|
86
|
+
+ Slot combination defined.
|
|
87
|
+
|
|
88
|
+
"""
|
|
89
|
+
|
|
74
90
|
def bake_action(
|
|
75
91
|
obj: bpy.types.Object, *, action: None | bpy.types.Action, frames: int, bake_options
|
|
76
92
|
) -> None | bpy.types.Action:
|
|
77
93
|
"""
|
|
78
94
|
|
|
79
95
|
:param obj: Object to bake.
|
|
80
|
-
:type obj: bpy.types.Object
|
|
81
96
|
:param action: An action to bake the data into, or None for a new action
|
|
82
97
|
to be created.
|
|
83
|
-
:type action: None | bpy.types.Action
|
|
84
98
|
:param frames: Frames to bake.
|
|
85
|
-
:type frames: int
|
|
86
99
|
:param bake_options: Options for baking.
|
|
87
100
|
:return: Action or None.
|
|
88
|
-
:rtype: None | bpy.types.Action
|
|
89
101
|
"""
|
|
90
102
|
|
|
91
103
|
def bake_action_iter(
|
|
@@ -94,13 +106,10 @@ def bake_action_iter(
|
|
|
94
106
|
"""An coroutine that bakes action for a single object.
|
|
95
107
|
|
|
96
108
|
:param obj: Object to bake.
|
|
97
|
-
:type obj: bpy.types.Object
|
|
98
109
|
:param action: An action to bake the data into, or None for a new action
|
|
99
110
|
to be created.
|
|
100
|
-
:type action: None | bpy.types.Action
|
|
101
111
|
:param bake_options: Boolean options of what to include into the action bake.
|
|
102
112
|
:return: an action or None
|
|
103
|
-
:rtype: bpy.types.Action
|
|
104
113
|
"""
|
|
105
114
|
|
|
106
115
|
def bake_action_objects(
|
|
@@ -111,7 +120,6 @@ def bake_action_objects(
|
|
|
111
120
|
:param frames: Frames to bake.
|
|
112
121
|
:param bake_options: Options for baking.
|
|
113
122
|
:return: A sequence of Action or None types (aligned with object_action_pairs)
|
|
114
|
-
:rtype: collections.abc.Sequence[bpy.types.Action]
|
|
115
123
|
"""
|
|
116
124
|
|
|
117
125
|
def bake_action_objects_iter(object_action_pairs, bake_options) -> None:
|
|
@@ -9,7 +9,6 @@ def bmesh_linked_uv_islands(bm, uv_layer) -> list[list[int]]:
|
|
|
9
9
|
:param bm: the bmesh used to group with.
|
|
10
10
|
:param uv_layer: the UV layer to source UVs from.
|
|
11
11
|
:return: list of lists containing polygon indices
|
|
12
|
-
:rtype: list[list[int]]
|
|
13
12
|
"""
|
|
14
13
|
|
|
15
14
|
def match_uv(face, vert, uv, uv_layer) -> None: ...
|
|
@@ -2,12 +2,20 @@ import typing
|
|
|
2
2
|
import collections.abc
|
|
3
3
|
import typing_extensions
|
|
4
4
|
import numpy.typing as npt
|
|
5
|
+
import bpy.types
|
|
5
6
|
|
|
6
|
-
def get_all_referenced_ids(
|
|
7
|
-
|
|
7
|
+
def get_all_referenced_ids(
|
|
8
|
+
id: bpy.types.ID, ref_map: dict[bpy.types.ID, set[bpy.types.ID]]
|
|
9
|
+
) -> set[bpy.types.ID]:
|
|
10
|
+
"""Return a set of IDs directly or indirectly referenced by id.
|
|
8
11
|
|
|
9
|
-
|
|
10
|
-
|
|
12
|
+
:param id: Datablock whose references were interested in.
|
|
13
|
+
:param ref_map: The global ID reference map, retrieved from get_id_reference_map()
|
|
14
|
+
:return: Set of datablocks referenced by id.
|
|
15
|
+
"""
|
|
11
16
|
|
|
12
|
-
def
|
|
13
|
-
"""
|
|
17
|
+
def get_id_reference_map() -> dict[bpy.types.ID, set[bpy.types.ID]]:
|
|
18
|
+
"""Return a dictionary of direct data-block references for every data-block in the blend file.
|
|
19
|
+
|
|
20
|
+
:return: Each datablock of the .blend file mapped to the set of IDs they directly reference.
|
|
21
|
+
"""
|
|
@@ -21,32 +21,23 @@ def load_image(
|
|
|
21
21
|
|
|
22
22
|
:param dirname: is the directory where the image may be located - any file at
|
|
23
23
|
the end will be ignored.
|
|
24
|
-
:type dirname: str
|
|
25
24
|
:param place_holder: if True a new place holder image will be created.
|
|
26
25
|
this is useful so later you can relink the image to its original data.
|
|
27
|
-
:type place_holder: bool
|
|
28
26
|
:param recursive: If True, directories will be recursively searched.
|
|
29
27
|
Be careful with this if you have files in your root directory because
|
|
30
28
|
it may take a long time.
|
|
31
|
-
:type recursive: bool
|
|
32
29
|
:param ncase_cmp: on non windows systems, find the correct case for the file.
|
|
33
|
-
:type ncase_cmp: bool
|
|
34
30
|
:param convert_callback: a function that takes an existing path and returns
|
|
35
31
|
a new one. Use this when loading image formats blender may not support,
|
|
36
32
|
the CONVERT_CALLBACK can take the path for a GIF (for example),
|
|
37
|
-
convert it to a PNG and return the
|
|
33
|
+
convert it to a PNG and return the PNGs path.
|
|
38
34
|
For formats blender can read, simply return the path that is given.
|
|
39
|
-
:type convert_callback: typing.Any | None
|
|
40
35
|
:param relpath: If not None, make the file relative to this path.
|
|
41
|
-
:type relpath: None | str | None
|
|
42
36
|
:param check_existing: If true,
|
|
43
|
-
returns already loaded image
|
|
37
|
+
returns already loaded image data-block if possible
|
|
44
38
|
(based on file path).
|
|
45
|
-
:type check_existing: bool
|
|
46
39
|
:param force_reload: If true,
|
|
47
40
|
force reloading of image (only useful when check_existing
|
|
48
41
|
is also enabled).
|
|
49
|
-
:type force_reload: bool
|
|
50
42
|
:return: an image or None
|
|
51
|
-
:rtype: None | bpy.types.Image
|
|
52
43
|
"""
|