fake-bpy-module 20240224__py3-none-any.whl → 20240326__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.
- addon_utils/__init__.pyi +54 -10
- animsys_refactor/__init__.pyi +36 -6
- aud/__init__.pyi +132 -125
- bgl/__init__.pyi +2545 -546
- bl_app_override/__init__.pyi +14 -3
- bl_app_override/helpers/__init__.pyi +24 -2
- bl_app_template_utils/__init__.pyi +19 -4
- bl_console_utils/autocomplete/complete_calltip/__init__.pyi +24 -5
- bl_console_utils/autocomplete/complete_import/__init__.pyi +14 -3
- bl_console_utils/autocomplete/complete_namespace/__init__.pyi +24 -5
- bl_console_utils/autocomplete/intellisense/__init__.pyi +9 -2
- bl_i18n_utils/bl_extract_messages/__init__.pyi +74 -15
- bl_i18n_utils/merge_po/__init__.pyi +4 -1
- bl_i18n_utils/settings/__init__.pyi +53 -6
- bl_i18n_utils/utils/__init__.pyi +332 -44
- bl_i18n_utils/utils_cli/__init__.pyi +29 -6
- bl_i18n_utils/utils_languages_menu/__init__.pyi +4 -1
- bl_i18n_utils/utils_rtl/__init__.pyi +9 -2
- bl_keymap_utils/io/__init__.pyi +44 -9
- bl_keymap_utils/keymap_from_toolbar/__init__.pyi +4 -1
- bl_keymap_utils/keymap_hierarchy/__init__.pyi +4 -1
- bl_keymap_utils/platform_helpers/__init__.pyi +9 -2
- bl_keymap_utils/versioning/__init__.pyi +4 -1
- bl_math/__init__.pyi +3 -3
- bl_operators/__init__.pyi +9 -2
- bl_operators/add_mesh_torus/__init__.pyi +171 -37
- bl_operators/anim/__init__.pyi +1065 -226
- bl_operators/assets/__init__.pyi +427 -92
- bl_operators/bmesh/find_adjacent/__init__.pyi +44 -9
- bl_operators/clip/__init__.pyi +1342 -287
- bl_operators/console/__init__.pyi +647 -140
- bl_operators/constraint/__init__.pyi +524 -112
- bl_operators/file/__init__.pyi +396 -84
- bl_operators/freestyle/__init__.pyi +532 -113
- bl_operators/geometry_nodes/__init__.pyi +2412 -596
- bl_operators/image/__init__.pyi +380 -82
- bl_operators/mesh/__init__.pyi +401 -85
- bl_operators/node/__init__.pyi +1756 -384
- bl_operators/object/__init__.pyi +2022 -552
- bl_operators/object_align/__init__.pyi +145 -31
- bl_operators/object_quick_effects/__init__.pyi +555 -124
- bl_operators/object_randomize_transform/__init__.pyi +136 -32
- bl_operators/presets/__init__.pyi +3516 -708
- bl_operators/rigidbody/__init__.pyi +401 -85
- bl_operators/screen_play_rendered_anim/__init__.pyi +129 -29
- bl_operators/sequencer/__init__.pyi +731 -149
- bl_operators/spreadsheet/__init__.pyi +145 -30
- bl_operators/userpref/__init__.pyi +3416 -824
- bl_operators/uvcalc_follow_active/__init__.pyi +149 -32
- bl_operators/uvcalc_lightmap/__init__.pyi +187 -34
- bl_operators/uvcalc_transform/__init__.pyi +344 -73
- bl_operators/vertexpaint_dirt/__init__.pyi +140 -30
- bl_operators/view3d/__init__.pyi +697 -146
- bl_operators/wm/__init__.pyi +6287 -1533
- bl_previews_utils/bl_previews_render/__init__.pyi +34 -7
- bl_rna_utils/data_path/__init__.pyi +12 -2
- bl_text_utils/external_editor/__init__.pyi +4 -1
- bl_ui/__init__.pyi +504 -106
- bl_ui/anim/__init__.pyi +164 -33
- bl_ui/asset_shelf/__init__.pyi +146 -31
- bl_ui/generic_ui_list/__init__.pyi +471 -99
- bl_ui/node_add_menu/__init__.pyi +196 -40
- bl_ui/node_add_menu_compositor/__init__.pyi +3017 -621
- bl_ui/node_add_menu_geometry/__init__.pyi +8060 -1625
- bl_ui/node_add_menu_shader/__init__.pyi +1709 -348
- bl_ui/node_add_menu_texture/__init__.pyi +1502 -305
- bl_ui/properties_animviz/__init__.pyi +32 -2
- bl_ui/properties_collection/__init__.pyi +787 -179
- bl_ui/properties_constraint/__init__.pyi +28635 -5523
- bl_ui/properties_data_armature/__init__.pyi +1905 -448
- bl_ui/properties_data_bone/__init__.pyi +1560 -336
- bl_ui/properties_data_camera/__init__.pyi +2269 -494
- bl_ui/properties_data_curve/__init__.pyi +2362 -534
- bl_ui/properties_data_curves/__init__.pyi +951 -203
- bl_ui/properties_data_empty/__init__.pyi +317 -69
- bl_ui/properties_data_gpencil/__init__.pyi +2924 -734
- bl_ui/properties_data_grease_pencil/__init__.pyi +1631 -188
- bl_ui/properties_data_lattice/__init__.pyi +472 -104
- bl_ui/properties_data_light/__init__.pyi +1570 -337
- bl_ui/properties_data_lightprobe/__init__.pyi +938 -208
- bl_ui/properties_data_mesh/__init__.pyi +3205 -767
- bl_ui/properties_data_metaball/__init__.pyi +774 -170
- bl_ui/properties_data_modifier/__init__.pyi +1554 -328
- bl_ui/properties_data_pointcloud/__init__.pyi +821 -194
- bl_ui/properties_data_shaderfx/__init__.pyi +154 -34
- bl_ui/properties_data_speaker/__init__.pyi +782 -168
- bl_ui/properties_data_volume/__init__.pyi +1243 -281
- bl_ui/properties_freestyle/__init__.pyi +4071 -1030
- bl_ui/properties_grease_pencil_common/__init__.pyi +2399 -483
- bl_ui/properties_mask_common/__init__.pyi +1256 -249
- bl_ui/properties_material/__init__.pyi +2351 -542
- bl_ui/properties_material_gpencil/__init__.pyi +1590 -365
- bl_ui/properties_object/__init__.pyi +2179 -512
- bl_ui/properties_output/__init__.pyi +2956 -705
- bl_ui/properties_paint_common/__init__.pyi +947 -140
- bl_ui/properties_particle/__init__.pyi +8322 -1970
- bl_ui/properties_physics_cloth/__init__.pyi +2254 -508
- bl_ui/properties_physics_common/__init__.pyi +200 -44
- bl_ui/properties_physics_dynamicpaint/__init__.pyi +4454 -965
- bl_ui/properties_physics_field/__init__.pyi +1695 -364
- bl_ui/properties_physics_fluid/__init__.pyi +6127 -1280
- bl_ui/properties_physics_geometry_nodes/__init__.pyi +157 -32
- bl_ui/properties_physics_rigidbody/__init__.pyi +1254 -278
- bl_ui/properties_physics_rigidbody_constraint/__init__.pyi +2053 -483
- bl_ui/properties_physics_softbody/__init__.pyi +2394 -542
- bl_ui/properties_render/__init__.pyi +8312 -1933
- bl_ui/properties_scene/__init__.pyi +2211 -539
- bl_ui/properties_texture/__init__.pyi +4185 -1013
- bl_ui/properties_view_layer/__init__.pyi +2803 -664
- bl_ui/properties_workspace/__init__.pyi +626 -148
- bl_ui/properties_world/__init__.pyi +1092 -234
- bl_ui/space_clip/__init__.pyi +11475 -2805
- bl_ui/space_console/__init__.pyi +967 -202
- bl_ui/space_dopesheet/__init__.pyi +4260 -966
- bl_ui/space_filebrowser/__init__.pyi +4852 -1187
- bl_ui/space_graph/__init__.pyi +3251 -702
- bl_ui/space_image/__init__.pyi +12219 -2968
- bl_ui/space_info/__init__.pyi +964 -200
- bl_ui/space_nla/__init__.pyi +2756 -584
- bl_ui/space_node/__init__.pyi +5661 -1265
- bl_ui/space_outliner/__init__.pyi +2294 -478
- bl_ui/space_properties/__init__.pyi +417 -92
- bl_ui/space_sequencer/__init__.pyi +12436 -3009
- bl_ui/space_spreadsheet/__init__.pyi +184 -36
- bl_ui/space_statusbar/__init__.pyi +135 -30
- bl_ui/space_text/__init__.pyi +2556 -542
- bl_ui/space_time/__init__.pyi +1151 -243
- bl_ui/space_toolsystem_common/__init__.pyi +368 -66
- bl_ui/space_toolsystem_toolbar/__init__.pyi +1378 -228
- bl_ui/space_topbar/__init__.pyi +4214 -887
- bl_ui/space_userpref/__init__.pyi +13920 -3468
- bl_ui/space_view3d/__init__.pyi +43701 -10599
- bl_ui/space_view3d_toolbar/__init__.pyi +16380 -3860
- bl_ui/utils/__init__.pyi +42 -4
- bl_ui_utils/bug_report_url/__init__.pyi +4 -1
- bl_ui_utils/layout/__init__.pyi +4 -1
- blend_render_info/__init__.pyi +13 -3
- blf/__init__.pyi +5 -7
- bmesh/__init__.pyi +7 -7
- bmesh/geometry/__init__.pyi +5 -5
- bmesh/ops/__init__.pyi +490 -504
- bmesh/types/__init__.pyi +268 -262
- bmesh/utils/__init__.pyi +55 -55
- bpy/__init__.pyi +2 -2
- bpy/app/__init__.pyi +4 -5
- bpy/app/handlers/__init__.pyi +36 -36
- bpy/app/icons/__init__.pyi +8 -10
- bpy/app/timers/__init__.pyi +9 -11
- bpy/app/translations/__init__.pyi +20 -22
- bpy/msgbus/__init__.pyi +3 -12
- bpy/ops/action/__init__.pyi +350 -305
- bpy/ops/anim/__init__.pyi +464 -426
- bpy/ops/armature/__init__.pyi +392 -360
- bpy/ops/asset/__init__.pyi +166 -129
- bpy/ops/boid/__init__.pyi +64 -37
- bpy/ops/brush/__init__.pyi +78 -72
- bpy/ops/buttons/__init__.pyi +136 -122
- bpy/ops/cachefile/__init__.pyi +128 -123
- bpy/ops/camera/__init__.pyi +22 -24
- bpy/ops/clip/__init__.pyi +844 -735
- bpy/ops/cloth/__init__.pyi +10 -11
- bpy/ops/collection/__init__.pyi +38 -38
- bpy/ops/console/__init__.pyi +170 -141
- bpy/ops/constraint/__init__.pyi +156 -159
- bpy/ops/curve/__init__.pyi +518 -461
- bpy/ops/curves/__init__.pyi +188 -159
- bpy/ops/cycles/__init__.pyi +20 -18
- bpy/ops/dpaint/__init__.pyi +40 -30
- bpy/ops/ed/__init__.pyi +136 -107
- bpy/ops/export_anim/__init__.pyi +18 -19
- bpy/ops/export_mesh/__init__.pyi +26 -27
- bpy/ops/export_scene/__init__.pyi +313 -334
- bpy/ops/file/__init__.pyi +394 -304
- bpy/ops/fluid/__init__.pyi +114 -63
- bpy/ops/font/__init__.pyi +272 -245
- bpy/ops/geometry/__init__.pyi +92 -87
- bpy/ops/gizmogroup/__init__.pyi +24 -21
- bpy/ops/gpencil/__init__.pyi +1530 -1476
- bpy/ops/graph/__init__.pyi +680 -659
- bpy/ops/grease_pencil/__init__.pyi +510 -390
- bpy/ops/image/__init__.pyi +650 -603
- bpy/ops/import_anim/__init__.pyi +26 -27
- bpy/ops/import_curve/__init__.pyi +6 -7
- bpy/ops/import_mesh/__init__.pyi +18 -21
- bpy/ops/import_scene/__init__.pyi +86 -95
- bpy/ops/info/__init__.pyi +68 -55
- bpy/ops/lattice/__init__.pyi +70 -63
- bpy/ops/marker/__init__.pyi +110 -111
- bpy/ops/mask/__init__.pyi +352 -308
- bpy/ops/material/__init__.pyi +24 -12
- bpy/ops/mball/__init__.pyi +72 -75
- bpy/ops/mesh/__init__.pyi +2052 -2088
- bpy/ops/nla/__init__.pyi +369 -313
- bpy/ops/node/__init__.pyi +944 -805
- bpy/ops/object/__init__.pyi +2662 -2461
- bpy/ops/outliner/__init__.pyi +582 -431
- bpy/ops/paint/__init__.pyi +605 -516
- bpy/ops/paintcurve/__init__.pyi +72 -60
- bpy/ops/palette/__init__.pyi +54 -46
- bpy/ops/particle/__init__.pyi +302 -245
- bpy/ops/pose/__init__.pyi +366 -330
- bpy/ops/poselib/__init__.pyi +78 -64
- bpy/ops/preferences/__init__.pyi +361 -341
- bpy/ops/ptcache/__init__.pyi +56 -38
- bpy/ops/render/__init__.pyi +120 -117
- bpy/ops/rigidbody/__init__.pyi +114 -97
- bpy/ops/scene/__init__.pyi +302 -240
- bpy/ops/screen/__init__.pyi +414 -363
- bpy/ops/script/__init__.pyi +20 -18
- bpy/ops/sculpt/__init__.pyi +414 -452
- bpy/ops/sculpt_curves/__init__.pyi +42 -43
- bpy/ops/sequencer/__init__.pyi +1094 -1053
- bpy/ops/sound/__init__.pyi +214 -206
- bpy/ops/spreadsheet/__init__.pyi +34 -28
- bpy/ops/surface/__init__.pyi +108 -114
- bpy/ops/text/__init__.pyi +432 -350
- bpy/ops/text_editor/__init__.pyi +10 -11
- bpy/ops/texture/__init__.pyi +32 -21
- bpy/ops/transform/__init__.pyi +801 -854
- bpy/ops/ui/__init__.pyi +254 -185
- bpy/ops/uilist/__init__.pyi +20 -23
- bpy/ops/uv/__init__.pyi +618 -626
- bpy/ops/view2d/__init__.pyi +162 -161
- bpy/ops/view3d/__init__.pyi +669 -658
- bpy/ops/wm/__init__.pyi +2433 -2415
- bpy/ops/workspace/__init__.pyi +54 -31
- bpy/ops/world/__init__.pyi +8 -4
- bpy/path/__init__.pyi +111 -68
- bpy/props/__init__.pyi +263 -267
- bpy/types/__init__.pyi +86789 -85719
- bpy/utils/__init__.pyi +265 -123
- bpy/utils/previews/__init__.pyi +103 -17
- bpy/utils/units/__init__.pyi +19 -22
- bpy_extras/__init__.pyi +0 -4
- bpy_extras/anim_utils/__init__.pyi +11 -46
- bpy_extras/asset_utils/__init__.pyi +3 -12
- bpy_extras/id_map_utils/__init__.pyi +0 -2
- bpy_extras/image_utils/__init__.pyi +2 -2
- bpy_extras/io_utils/__init__.pyi +30 -27
- bpy_extras/keyconfig_utils/__init__.pyi +4 -1
- bpy_extras/mesh_utils/__init__.pyi +18 -18
- bpy_extras/node_utils/__init__.pyi +4 -3
- bpy_extras/object_utils/__init__.pyi +25 -26
- bpy_extras/view3d_utils/__init__.pyi +33 -38
- bpy_restrict_state/__init__.pyi +14 -1
- bpy_types/__init__.pyi +3873 -997
- console_python/__init__.pyi +41 -7
- console_shell/__init__.pyi +24 -5
- {fake_bpy_module-20240224.dist-info → fake_bpy_module-20240326.dist-info}/METADATA +1 -1
- fake_bpy_module-20240326.dist-info/RECORD +343 -0
- {fake_bpy_module-20240224.dist-info → fake_bpy_module-20240326.dist-info}/WHEEL +1 -1
- freestyle/chainingiterators/__init__.pyi +50 -52
- freestyle/functions/__init__.pyi +303 -207
- freestyle/predicates/__init__.pyi +299 -115
- freestyle/shaders/__init__.pyi +49 -80
- freestyle/types/__init__.pyi +465 -472
- freestyle/utils/ContextFunctions/__init__.pyi +9 -9
- freestyle/utils/__init__.pyi +28 -18
- gpu/capabilities/__init__.pyi +27 -19
- gpu/matrix/__init__.pyi +14 -16
- gpu/platform/__init__.pyi +5 -5
- gpu/shader/__init__.pyi +2 -5
- gpu/state/__init__.pyi +1 -1
- gpu/texture/__init__.pyi +3 -3
- gpu/types/__init__.pyi +54 -85
- gpu_extras/batch/__init__.pyi +27 -5
- gpu_extras/presets/__init__.pyi +52 -14
- graphviz_export/__init__.pyi +9 -2
- idprop/types/__init__.pyi +36 -12
- imbuf/__init__.pyi +8 -9
- imbuf/types/__init__.pyi +8 -15
- keyingsets_builtins/__init__.pyi +3149 -701
- keyingsets_utils/__init__.pyi +69 -14
- mathutils/__init__.pyi +502 -427
- mathutils/bvhtree/__init__.pyi +28 -32
- mathutils/geometry/__init__.pyi +177 -186
- mathutils/kdtree/__init__.pyi +16 -18
- mathutils/noise/__init__.pyi +47 -48
- nodeitems_builtins/__init__.pyi +50 -10
- nodeitems_utils/__init__.pyi +58 -10
- rna_info/__init__.pyi +230 -26
- rna_keymap_ui/__init__.pyi +29 -6
- rna_prop_ui/__init__.pyi +69 -12
- rna_xml/__init__.pyi +29 -6
- sys_info/__init__.pyi +4 -1
- bpy_extras/bmesh_utils/__init__.pyi +0 -6
- bpy_extras/extensions/__init__.pyi +0 -4
- bpy_extras/extensions/junction_module/__init__.pyi +0 -12
- bpy_extras/node_shader_utils/__init__.pyi +0 -131
- bpy_extras/wm_utils/__init__.pyi +0 -4
- bpy_extras/wm_utils/progress_report/__init__.pyi +0 -29
- fake_bpy_module-20240224.dist-info/RECORD +0 -349
- {fake_bpy_module-20240224.dist-info → fake_bpy_module-20240326.dist-info}/top_level.txt +0 -0
bpy/utils/previews/__init__.pyi
CHANGED
|
@@ -18,50 +18,136 @@ class ImagePreviewCollection:
|
|
|
18
18
|
|
|
19
19
|
def load(
|
|
20
20
|
self,
|
|
21
|
-
name:
|
|
22
|
-
filepath: typing.
|
|
23
|
-
filetype:
|
|
24
|
-
force_reload:
|
|
25
|
-
) ->
|
|
21
|
+
name: str,
|
|
22
|
+
filepath: typing.Union[str, bytes],
|
|
23
|
+
filetype: str,
|
|
24
|
+
force_reload: bool = False,
|
|
25
|
+
) -> bool:
|
|
26
26
|
"""Generate a new preview from given file path.
|
|
27
27
|
|
|
28
28
|
:param name: The name (unique id) identifying the preview.
|
|
29
|
-
:type name:
|
|
29
|
+
:type name: str
|
|
30
30
|
:param filepath: The file path to generate the preview from.
|
|
31
|
-
:type filepath: typing.
|
|
31
|
+
:type filepath: typing.Union[str, bytes]
|
|
32
32
|
:param filetype: The type of file, needed to generate the preview in ['IMAGE', 'MOVIE', 'BLEND', 'FONT'].
|
|
33
|
-
:type filetype:
|
|
33
|
+
:type filetype: str
|
|
34
34
|
:param force_reload: If True, force running thumbnail manager even if preview already exists in cache.
|
|
35
|
-
:type force_reload:
|
|
36
|
-
:rtype: 'bpy.types.ImagePreview'
|
|
35
|
+
:type force_reload: bool
|
|
37
36
|
:return: The Preview matching given name, or a new empty one.
|
|
37
|
+
:rtype: bpy.types.ImagePreview
|
|
38
38
|
"""
|
|
39
39
|
...
|
|
40
40
|
|
|
41
|
-
def new(self, name:
|
|
41
|
+
def new(self, name: str) -> str:
|
|
42
42
|
"""Generate a new empty preview.
|
|
43
43
|
|
|
44
44
|
:param name: The name (unique id) identifying the preview.
|
|
45
|
-
:type name:
|
|
46
|
-
:rtype: 'bpy.types.ImagePreview'
|
|
45
|
+
:type name: str
|
|
47
46
|
:return: The Preview matching given name, or a new empty one.
|
|
47
|
+
:rtype: bpy.types.ImagePreview
|
|
48
48
|
"""
|
|
49
49
|
...
|
|
50
50
|
|
|
51
|
-
|
|
51
|
+
class ImagePreviewCollection:
|
|
52
|
+
""" """
|
|
53
|
+
|
|
54
|
+
def clear(self):
|
|
55
|
+
""" """
|
|
56
|
+
...
|
|
57
|
+
|
|
58
|
+
def close(self):
|
|
59
|
+
""" """
|
|
60
|
+
...
|
|
61
|
+
|
|
62
|
+
def copy(self):
|
|
63
|
+
""" """
|
|
64
|
+
...
|
|
65
|
+
|
|
66
|
+
def fromkeys(self):
|
|
67
|
+
""" """
|
|
68
|
+
...
|
|
69
|
+
|
|
70
|
+
def get(self, key, default):
|
|
71
|
+
"""
|
|
72
|
+
|
|
73
|
+
:param key:
|
|
74
|
+
:param default:
|
|
75
|
+
"""
|
|
76
|
+
...
|
|
77
|
+
|
|
78
|
+
def items(self):
|
|
79
|
+
""" """
|
|
80
|
+
...
|
|
81
|
+
|
|
82
|
+
def keys(self):
|
|
83
|
+
""" """
|
|
84
|
+
...
|
|
85
|
+
|
|
86
|
+
def load(self, name, path, path_type, force_reload):
|
|
87
|
+
"""
|
|
88
|
+
|
|
89
|
+
:param name:
|
|
90
|
+
:param path:
|
|
91
|
+
:param path_type:
|
|
92
|
+
:param force_reload:
|
|
93
|
+
"""
|
|
94
|
+
...
|
|
95
|
+
|
|
96
|
+
def new(self, name):
|
|
97
|
+
"""
|
|
98
|
+
|
|
99
|
+
:param name:
|
|
100
|
+
"""
|
|
101
|
+
...
|
|
102
|
+
|
|
103
|
+
def pop(self):
|
|
104
|
+
""" """
|
|
105
|
+
...
|
|
106
|
+
|
|
107
|
+
def popitem(self):
|
|
108
|
+
""" """
|
|
109
|
+
...
|
|
110
|
+
|
|
111
|
+
def setdefault(self, key, default):
|
|
112
|
+
"""
|
|
113
|
+
|
|
114
|
+
:param key:
|
|
115
|
+
:param default:
|
|
116
|
+
"""
|
|
117
|
+
...
|
|
118
|
+
|
|
119
|
+
def update(self):
|
|
120
|
+
""" """
|
|
121
|
+
...
|
|
122
|
+
|
|
123
|
+
def values(self):
|
|
124
|
+
""" """
|
|
125
|
+
...
|
|
126
|
+
|
|
127
|
+
def new() -> ImagePreviewCollection:
|
|
52
128
|
"""
|
|
53
129
|
|
|
54
|
-
:rtype: 'ImagePreviewCollection'
|
|
55
130
|
:return: a new preview collection.
|
|
131
|
+
:rtype: ImagePreviewCollection
|
|
56
132
|
"""
|
|
57
133
|
|
|
58
134
|
...
|
|
59
135
|
|
|
60
|
-
def
|
|
136
|
+
def new():
|
|
137
|
+
""" """
|
|
138
|
+
|
|
139
|
+
...
|
|
140
|
+
|
|
141
|
+
def remove(pcoll: ImagePreviewCollection):
|
|
61
142
|
"""Remove the specified previews collection.
|
|
62
143
|
|
|
63
144
|
:param pcoll: Preview collection to close.
|
|
64
|
-
:type pcoll:
|
|
145
|
+
:type pcoll: ImagePreviewCollection
|
|
65
146
|
"""
|
|
66
147
|
|
|
67
148
|
...
|
|
149
|
+
|
|
150
|
+
def remove(pcoll):
|
|
151
|
+
""" """
|
|
152
|
+
|
|
153
|
+
...
|
bpy/utils/units/__init__.pyi
CHANGED
|
@@ -3,53 +3,50 @@ import typing
|
|
|
3
3
|
GenericType = typing.TypeVar("GenericType")
|
|
4
4
|
|
|
5
5
|
def to_string(
|
|
6
|
-
unit_system:
|
|
7
|
-
unit_category:
|
|
8
|
-
value:
|
|
9
|
-
precision:
|
|
10
|
-
split_unit:
|
|
11
|
-
compatible_unit:
|
|
6
|
+
unit_system: str,
|
|
7
|
+
unit_category: str,
|
|
8
|
+
value: float,
|
|
9
|
+
precision: int = 3,
|
|
10
|
+
split_unit: bool = False,
|
|
11
|
+
compatible_unit: bool = False,
|
|
12
12
|
) -> str:
|
|
13
13
|
"""Convert a given input float value into a string with units.
|
|
14
14
|
|
|
15
15
|
:param unit_system: The unit system, from `bpy.utils.units.systems`.
|
|
16
|
-
:type unit_system:
|
|
16
|
+
:type unit_system: str
|
|
17
17
|
:param unit_category: The category of data we are converting (length, area, rotation, etc.),
|
|
18
18
|
from `bpy.utils.units.categories`.
|
|
19
|
-
:type unit_category:
|
|
19
|
+
:type unit_category: str
|
|
20
20
|
:param value: The value to convert to a string.
|
|
21
|
-
:type value:
|
|
21
|
+
:type value: float
|
|
22
22
|
:param precision: Number of digits after the comma.
|
|
23
|
-
:type precision:
|
|
23
|
+
:type precision: int
|
|
24
24
|
:param split_unit: Whether to use several units if needed (1m1cm), or always only one (1.01m).
|
|
25
|
-
:type split_unit:
|
|
25
|
+
:type split_unit: bool
|
|
26
26
|
:param compatible_unit: Whether to use keyboard-friendly units (1m2) or nicer utf-8 ones (1m²).
|
|
27
|
-
:type compatible_unit:
|
|
28
|
-
:rtype: str
|
|
27
|
+
:type compatible_unit: bool
|
|
29
28
|
:return: The converted string.
|
|
29
|
+
:rtype: str
|
|
30
30
|
"""
|
|
31
31
|
|
|
32
32
|
...
|
|
33
33
|
|
|
34
34
|
def to_value(
|
|
35
|
-
unit_system:
|
|
36
|
-
unit_category: typing.Optional[str],
|
|
37
|
-
str_input: typing.Optional[str],
|
|
38
|
-
str_ref_unit: typing.Optional[str] = None,
|
|
35
|
+
unit_system: str, unit_category: str, str_input: str, str_ref_unit: str = None
|
|
39
36
|
) -> float:
|
|
40
37
|
"""Convert a given input string into a float value.
|
|
41
38
|
|
|
42
39
|
:param unit_system: The unit system, from `bpy.utils.units.systems`.
|
|
43
|
-
:type unit_system:
|
|
40
|
+
:type unit_system: str
|
|
44
41
|
:param unit_category: The category of data we are converting (length, area, rotation, etc.),
|
|
45
42
|
from `bpy.utils.units.categories`.
|
|
46
|
-
:type unit_category:
|
|
43
|
+
:type unit_category: str
|
|
47
44
|
:param str_input: The string to convert to a float value.
|
|
48
|
-
:type str_input:
|
|
45
|
+
:type str_input: str
|
|
49
46
|
:param str_ref_unit: A reference string from which to extract a default unit, if none is found in str_input.
|
|
50
|
-
:type str_ref_unit:
|
|
51
|
-
:rtype: float
|
|
47
|
+
:type str_ref_unit: str
|
|
52
48
|
:return: The converted/interpreted value.
|
|
49
|
+
:rtype: float
|
|
53
50
|
"""
|
|
54
51
|
|
|
55
52
|
...
|
bpy_extras/__init__.pyi
CHANGED
|
@@ -1,17 +1,13 @@
|
|
|
1
1
|
import typing
|
|
2
2
|
from . import anim_utils
|
|
3
3
|
from . import asset_utils
|
|
4
|
-
from . import bmesh_utils
|
|
5
|
-
from . import extensions
|
|
6
4
|
from . import id_map_utils
|
|
7
5
|
from . import image_utils
|
|
8
6
|
from . import io_utils
|
|
9
7
|
from . import keyconfig_utils
|
|
10
8
|
from . import mesh_utils
|
|
11
|
-
from . import node_shader_utils
|
|
12
9
|
from . import node_utils
|
|
13
10
|
from . import object_utils
|
|
14
11
|
from . import view3d_utils
|
|
15
|
-
from . import wm_utils
|
|
16
12
|
|
|
17
13
|
GenericType = typing.TypeVar("GenericType")
|
|
@@ -3,88 +3,53 @@ import bpy.types
|
|
|
3
3
|
|
|
4
4
|
GenericType = typing.TypeVar("GenericType")
|
|
5
5
|
|
|
6
|
-
class BakeOptions: ...
|
|
7
|
-
|
|
8
|
-
class KeyframesCo:
|
|
9
|
-
keyframes_from_fcurve: typing.Any
|
|
10
|
-
|
|
11
|
-
def add_paths(self, rna_path, total_indices): ...
|
|
12
|
-
def extend_co_value(self, rna_path, frame, value): ...
|
|
13
|
-
def extend_co_values(self, rna_path, total_indices, frame, values): ...
|
|
14
|
-
def insert_keyframes_into_existing_action(
|
|
15
|
-
self, lookup_fcurves, total_new_keys, action, action_group_name
|
|
16
|
-
): ...
|
|
17
|
-
def insert_keyframes_into_new_action(
|
|
18
|
-
self, total_new_keys, action, action_group_name
|
|
19
|
-
): ...
|
|
20
|
-
|
|
21
6
|
def bake_action(
|
|
22
|
-
obj:
|
|
23
|
-
|
|
24
|
-
action: typing.Optional["bpy.types.Action"],
|
|
25
|
-
frames: int,
|
|
26
|
-
bake_options,
|
|
27
|
-
) -> "bpy.types.Action":
|
|
7
|
+
obj: bpy.types.Object, action, frames, bake_options
|
|
8
|
+
) -> bpy.types.Action:
|
|
28
9
|
"""
|
|
29
10
|
|
|
30
11
|
:param obj: Object to bake.
|
|
31
|
-
:type obj:
|
|
12
|
+
:type obj: bpy.types.Object
|
|
32
13
|
:param action: An action to bake the data into, or None for a new action
|
|
33
14
|
to be created.
|
|
34
|
-
:type action: typing.Optional['bpy.types.Action']
|
|
35
15
|
:param frames: Frames to bake.
|
|
36
|
-
:type frames: int
|
|
37
|
-
:rtype: 'bpy.types.Action'
|
|
38
16
|
:return: an action or None
|
|
17
|
+
:rtype: bpy.types.Action
|
|
39
18
|
"""
|
|
40
19
|
|
|
41
20
|
...
|
|
42
21
|
|
|
43
|
-
def bake_action_iter(
|
|
44
|
-
obj: "bpy.types.Object",
|
|
45
|
-
*,
|
|
46
|
-
action: typing.Optional["bpy.types.Action"],
|
|
47
|
-
bake_options: typing.Any,
|
|
48
|
-
) -> "bpy.types.Action":
|
|
22
|
+
def bake_action_iter(obj: bpy.types.Object, action, bake_options) -> bpy.types.Action:
|
|
49
23
|
"""An coroutine that bakes action for a single object.
|
|
50
24
|
|
|
51
25
|
:param obj: Object to bake.
|
|
52
|
-
:type obj:
|
|
26
|
+
:type obj: bpy.types.Object
|
|
53
27
|
:param action: An action to bake the data into, or None for a new action
|
|
54
28
|
to be created.
|
|
55
|
-
:type action: typing.Optional['bpy.types.Action']
|
|
56
29
|
:param bake_options: Boolean options of what to include into the action bake.
|
|
57
|
-
:type bake_options: typing.Any
|
|
58
|
-
:rtype: 'bpy.types.Action'
|
|
59
30
|
:return: an action or None
|
|
31
|
+
:rtype: bpy.types.Action
|
|
60
32
|
"""
|
|
61
33
|
|
|
62
34
|
...
|
|
63
35
|
|
|
64
36
|
def bake_action_objects(
|
|
65
|
-
object_action_pairs,
|
|
66
|
-
) -> typing.Iterable[
|
|
37
|
+
object_action_pairs, frames, bake_options
|
|
38
|
+
) -> typing.Iterable[bpy.types.Action]:
|
|
67
39
|
"""A version of `bake_action_objects_iter` that takes frames and returns the output.
|
|
68
40
|
|
|
69
41
|
:param frames: Frames to bake.
|
|
70
|
-
:type frames: int
|
|
71
|
-
:rtype: typing.Iterable['bpy.types.Action']
|
|
72
42
|
:return: A sequence of Action or None types (aligned with object_action_pairs)
|
|
43
|
+
:rtype: typing.Iterable[bpy.types.Action]
|
|
73
44
|
"""
|
|
74
45
|
|
|
75
46
|
...
|
|
76
47
|
|
|
77
|
-
def bake_action_objects_iter(
|
|
78
|
-
object_action_pairs: typing.Union[
|
|
79
|
-
"bpy.types.Action", "bpy.types.Object", "bpy.types.Sequence"
|
|
80
|
-
],
|
|
81
|
-
bake_options,
|
|
82
|
-
):
|
|
48
|
+
def bake_action_objects_iter(object_action_pairs, bake_options):
|
|
83
49
|
"""An coroutine that bakes actions for multiple objects.
|
|
84
50
|
|
|
85
51
|
:param object_action_pairs: Sequence of object action tuples,
|
|
86
52
|
action is the destination for the baked data. When None a new action will be created.
|
|
87
|
-
:type object_action_pairs: typing.Union['bpy.types.Action', 'bpy.types.Object', 'bpy.types.Sequence']
|
|
88
53
|
"""
|
|
89
54
|
|
|
90
55
|
...
|
|
@@ -2,16 +2,7 @@ import typing
|
|
|
2
2
|
|
|
3
3
|
GenericType = typing.TypeVar("GenericType")
|
|
4
4
|
|
|
5
|
-
class
|
|
6
|
-
|
|
5
|
+
class SpaceAssetInfo:
|
|
6
|
+
""" """
|
|
7
7
|
|
|
8
|
-
|
|
9
|
-
def poll(self, context): ...
|
|
10
|
-
|
|
11
|
-
class AssetMetaDataPanel:
|
|
12
|
-
bl_region_type: typing.Any
|
|
13
|
-
bl_space_type: typing.Any
|
|
14
|
-
|
|
15
|
-
def poll(self, context): ...
|
|
16
|
-
|
|
17
|
-
class SpaceAssetInfo: ...
|
|
8
|
+
...
|
|
@@ -14,7 +14,7 @@ def load_image(
|
|
|
14
14
|
relpath: str = None,
|
|
15
15
|
check_existing: bool = False,
|
|
16
16
|
force_reload: bool = False,
|
|
17
|
-
) ->
|
|
17
|
+
) -> bpy.types.Image:
|
|
18
18
|
"""Return an image from the file path with options to search multiple paths
|
|
19
19
|
and return a placeholder if its not found.
|
|
20
20
|
|
|
@@ -46,8 +46,8 @@ def load_image(
|
|
|
46
46
|
force reloading of image (only useful when check_existing
|
|
47
47
|
is also enabled).
|
|
48
48
|
:type force_reload: bool
|
|
49
|
-
:rtype: 'bpy.types.Image'
|
|
50
49
|
:return: an image or None
|
|
50
|
+
:rtype: bpy.types.Image
|
|
51
51
|
"""
|
|
52
52
|
|
|
53
53
|
...
|
bpy_extras/io_utils/__init__.pyi
CHANGED
|
@@ -4,11 +4,12 @@ import bpy.types
|
|
|
4
4
|
GenericType = typing.TypeVar("GenericType")
|
|
5
5
|
|
|
6
6
|
class ExportHelper:
|
|
7
|
+
""" """
|
|
8
|
+
|
|
7
9
|
def check(self, _context):
|
|
8
10
|
"""
|
|
9
11
|
|
|
10
12
|
:param _context:
|
|
11
|
-
:type _context:
|
|
12
13
|
"""
|
|
13
14
|
...
|
|
14
15
|
|
|
@@ -16,18 +17,17 @@ class ExportHelper:
|
|
|
16
17
|
"""
|
|
17
18
|
|
|
18
19
|
:param context:
|
|
19
|
-
:type context:
|
|
20
20
|
:param _event:
|
|
21
|
-
:type _event:
|
|
22
21
|
"""
|
|
23
22
|
...
|
|
24
23
|
|
|
25
24
|
class ImportHelper:
|
|
25
|
+
""" """
|
|
26
|
+
|
|
26
27
|
def check(self, _context):
|
|
27
28
|
"""
|
|
28
29
|
|
|
29
30
|
:param _context:
|
|
30
|
-
:type _context:
|
|
31
31
|
"""
|
|
32
32
|
...
|
|
33
33
|
|
|
@@ -35,9 +35,7 @@ class ImportHelper:
|
|
|
35
35
|
"""
|
|
36
36
|
|
|
37
37
|
:param context:
|
|
38
|
-
:type context:
|
|
39
38
|
:param _event:
|
|
40
|
-
:type _event:
|
|
41
39
|
"""
|
|
42
40
|
...
|
|
43
41
|
|
|
@@ -50,35 +48,35 @@ def axis_conversion(from_forward="Y", from_up="Z", to_forward="Y", to_up="Z"):
|
|
|
50
48
|
...
|
|
51
49
|
|
|
52
50
|
def axis_conversion_ensure(
|
|
53
|
-
operator:
|
|
51
|
+
operator: bpy.types.Operator, forward_attr: str, up_attr: str
|
|
54
52
|
) -> bool:
|
|
55
53
|
"""Function to ensure an operator has valid axis conversion settings, intended
|
|
56
54
|
to be used from `bpy.types.Operator.check`.
|
|
57
55
|
|
|
58
56
|
:param operator: the operator to access axis attributes from.
|
|
59
|
-
:type operator:
|
|
57
|
+
:type operator: bpy.types.Operator
|
|
60
58
|
:param forward_attr: attribute storing the forward axis
|
|
61
59
|
:type forward_attr: str
|
|
62
60
|
:param up_attr: attribute storing the up axis
|
|
63
61
|
:type up_attr: str
|
|
64
|
-
:rtype: bool
|
|
65
62
|
:return: True if the value was modified.
|
|
63
|
+
:rtype: bool
|
|
66
64
|
"""
|
|
67
65
|
|
|
68
66
|
...
|
|
69
67
|
|
|
70
68
|
def create_derived_objects(
|
|
71
|
-
depsgraph:
|
|
72
|
-
) ->
|
|
69
|
+
depsgraph: bpy.types.Depsgraph, objects: typing.Iterable[bpy.types.Object]
|
|
70
|
+
) -> dict:
|
|
73
71
|
"""This function takes a sequence of objects, returning their instances.
|
|
74
72
|
|
|
75
73
|
:param depsgraph: The evaluated depsgraph.
|
|
76
|
-
:type depsgraph:
|
|
74
|
+
:type depsgraph: bpy.types.Depsgraph
|
|
77
75
|
:param objects: A sequencer of objects.
|
|
78
|
-
:type objects: typing.Iterable[
|
|
79
|
-
:rtype: typing.Dict
|
|
76
|
+
:type objects: typing.Iterable[bpy.types.Object]
|
|
80
77
|
:return: A dictionary where each key is an object from objects,
|
|
81
78
|
values are lists of (`bpy.types.Object`, `mathutils.Matrix`) tuples representing instances.
|
|
79
|
+
:rtype: dict
|
|
82
80
|
"""
|
|
83
81
|
|
|
84
82
|
...
|
|
@@ -97,8 +95,8 @@ def path_reference(
|
|
|
97
95
|
base_dst: str,
|
|
98
96
|
mode: str = "AUTO",
|
|
99
97
|
copy_subdir: str = "",
|
|
100
|
-
copy_set:
|
|
101
|
-
library
|
|
98
|
+
copy_set: set = None,
|
|
99
|
+
library=None,
|
|
102
100
|
) -> str:
|
|
103
101
|
"""Return a filepath relative to a destination directory, for use with
|
|
104
102
|
exporters.
|
|
@@ -119,20 +117,19 @@ def path_reference(
|
|
|
119
117
|
:type copy_subdir: str
|
|
120
118
|
:param copy_set: collect from/to pairs when mode='COPY',
|
|
121
119
|
pass to path_reference_copy when exporting is done.
|
|
122
|
-
:type copy_set:
|
|
120
|
+
:type copy_set: set
|
|
123
121
|
:param library: The library this path is relative to.
|
|
124
|
-
:type library: typing.Optional['bpy.types.Library']
|
|
125
|
-
:rtype: str
|
|
126
122
|
:return: the new filepath.
|
|
123
|
+
:rtype: str
|
|
127
124
|
"""
|
|
128
125
|
|
|
129
126
|
...
|
|
130
127
|
|
|
131
|
-
def path_reference_copy(copy_set:
|
|
128
|
+
def path_reference_copy(copy_set: set, report: typing.Any = None):
|
|
132
129
|
"""Execute copying files of path_reference
|
|
133
130
|
|
|
134
131
|
:param copy_set: set of (from, to) pairs to copy.
|
|
135
|
-
:type copy_set:
|
|
132
|
+
:type copy_set: set
|
|
136
133
|
:param report: function used for reporting warnings, takes a string argument.
|
|
137
134
|
:type report: typing.Any
|
|
138
135
|
"""
|
|
@@ -140,9 +137,9 @@ def path_reference_copy(copy_set: typing.Set, report: typing.Any = None):
|
|
|
140
137
|
...
|
|
141
138
|
|
|
142
139
|
def unique_name(
|
|
143
|
-
key
|
|
140
|
+
key,
|
|
144
141
|
name: str,
|
|
145
|
-
name_dict:
|
|
142
|
+
name_dict: dict,
|
|
146
143
|
name_max=-1,
|
|
147
144
|
clean_func: typing.Any = None,
|
|
148
145
|
sep: str = ".",
|
|
@@ -153,13 +150,12 @@ def unique_name(
|
|
|
153
150
|
:param key: unique item this name belongs to, name_dict[key] will be reused
|
|
154
151
|
when available.
|
|
155
152
|
This can be the object, mesh, material, etc instance itself.
|
|
156
|
-
:type key: typing.Any
|
|
157
153
|
:param name: The name used to create a unique value in name_dict.
|
|
158
154
|
:type name: str
|
|
159
155
|
:param name_dict: This is used to cache namespace to ensure no collisions
|
|
160
156
|
occur, this should be an empty dict initially and only modified by this
|
|
161
157
|
function.
|
|
162
|
-
:type name_dict:
|
|
158
|
+
:type name_dict: dict
|
|
163
159
|
:param clean_func: Function to call on name before creating a unique value.
|
|
164
160
|
:type clean_func: typing.Any
|
|
165
161
|
:param sep: Separator to use when between the name and a number when a
|
|
@@ -169,5 +165,12 @@ def unique_name(
|
|
|
169
165
|
|
|
170
166
|
...
|
|
171
167
|
|
|
172
|
-
def unpack_face_list(list_of_tuples):
|
|
173
|
-
|
|
168
|
+
def unpack_face_list(list_of_tuples):
|
|
169
|
+
""" """
|
|
170
|
+
|
|
171
|
+
...
|
|
172
|
+
|
|
173
|
+
def unpack_list(list_of_tuples):
|
|
174
|
+
""" """
|
|
175
|
+
|
|
176
|
+
...
|
|
@@ -3,21 +3,21 @@ import bpy.types
|
|
|
3
3
|
|
|
4
4
|
GenericType = typing.TypeVar("GenericType")
|
|
5
5
|
|
|
6
|
-
def edge_face_count(mesh) ->
|
|
6
|
+
def edge_face_count(mesh) -> list:
|
|
7
7
|
"""
|
|
8
8
|
|
|
9
|
-
:rtype: typing.List
|
|
10
9
|
:return: list face users for each item in mesh.edges.
|
|
10
|
+
:rtype: list
|
|
11
11
|
"""
|
|
12
12
|
|
|
13
13
|
...
|
|
14
14
|
|
|
15
|
-
def edge_face_count_dict(mesh) ->
|
|
15
|
+
def edge_face_count_dict(mesh) -> dict:
|
|
16
16
|
"""
|
|
17
17
|
|
|
18
|
-
:rtype: typing.Dict
|
|
19
18
|
:return: dict of edge keys with their value set to the number of
|
|
20
19
|
faces using each edge.
|
|
20
|
+
:rtype: dict
|
|
21
21
|
"""
|
|
22
22
|
|
|
23
23
|
...
|
|
@@ -30,32 +30,32 @@ def edge_loops_from_edges(mesh, edges=None):
|
|
|
30
30
|
|
|
31
31
|
...
|
|
32
32
|
|
|
33
|
-
def mesh_linked_triangles(mesh:
|
|
33
|
+
def mesh_linked_triangles(mesh: bpy.types.Mesh) -> list:
|
|
34
34
|
"""Splits the mesh into connected triangles, use this for separating cubes from
|
|
35
35
|
other mesh elements within 1 mesh datablock.
|
|
36
36
|
|
|
37
37
|
:param mesh: the mesh used to group with.
|
|
38
|
-
:type mesh:
|
|
39
|
-
:rtype: typing.List
|
|
38
|
+
:type mesh: bpy.types.Mesh
|
|
40
39
|
:return: lists of lists containing triangles.
|
|
40
|
+
:rtype: list
|
|
41
41
|
"""
|
|
42
42
|
|
|
43
43
|
...
|
|
44
44
|
|
|
45
|
-
def mesh_linked_uv_islands(mesh:
|
|
45
|
+
def mesh_linked_uv_islands(mesh: bpy.types.Mesh) -> list:
|
|
46
46
|
"""Returns lists of polygon indices connected by UV islands.
|
|
47
47
|
|
|
48
48
|
:param mesh: the mesh used to group with.
|
|
49
|
-
:type mesh:
|
|
50
|
-
:rtype: typing.List
|
|
49
|
+
:type mesh: bpy.types.Mesh
|
|
51
50
|
:return: list of lists containing polygon indices
|
|
51
|
+
:rtype: list
|
|
52
52
|
"""
|
|
53
53
|
|
|
54
54
|
...
|
|
55
55
|
|
|
56
56
|
def ngon_tessellate(
|
|
57
|
-
from_data: typing.Union[
|
|
58
|
-
indices:
|
|
57
|
+
from_data: typing.Union[list, bpy.types.Mesh],
|
|
58
|
+
indices: list,
|
|
59
59
|
fix_loops: bool = True,
|
|
60
60
|
debug_print=True,
|
|
61
61
|
):
|
|
@@ -64,11 +64,11 @@ def ngon_tessellate(
|
|
|
64
64
|
ngon to create from existing verts.
|
|
65
65
|
|
|
66
66
|
:param from_data: either a mesh, or a list/tuple of vectors.
|
|
67
|
-
:type from_data: typing.Union[
|
|
67
|
+
:type from_data: typing.Union[list, bpy.types.Mesh]
|
|
68
68
|
:param indices: a list of indices to use this list
|
|
69
69
|
is the ordered closed poly-line
|
|
70
70
|
to fill, and can be a subset of the data given.
|
|
71
|
-
:type indices:
|
|
71
|
+
:type indices: list
|
|
72
72
|
:param fix_loops: If this is enabled poly-lines
|
|
73
73
|
that use loops to make multiple
|
|
74
74
|
poly-lines are dealt with correctly.
|
|
@@ -79,15 +79,15 @@ def ngon_tessellate(
|
|
|
79
79
|
|
|
80
80
|
def triangle_random_points(
|
|
81
81
|
num_points,
|
|
82
|
-
loop_triangles: typing.Union[
|
|
83
|
-
) ->
|
|
82
|
+
loop_triangles: typing.Union[bpy.types.MeshLoopTriangle, typing.Sequence],
|
|
83
|
+
) -> list:
|
|
84
84
|
"""Generates a list of random points over mesh loop triangles.
|
|
85
85
|
|
|
86
86
|
:param num_points: the number of random points to generate on each triangle.
|
|
87
87
|
:param loop_triangles: list of the triangles to generate points on.
|
|
88
|
-
:type loop_triangles: typing.Union[
|
|
89
|
-
:rtype: typing.List
|
|
88
|
+
:type loop_triangles: typing.Union[bpy.types.MeshLoopTriangle, typing.Sequence]
|
|
90
89
|
:return: list of random points over all triangles.
|
|
90
|
+
:rtype: list
|
|
91
91
|
"""
|
|
92
92
|
|
|
93
93
|
...
|