fake-bpy-module 20240210__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.
Files changed (309) hide show
  1. addon_utils/__init__.pyi +54 -11
  2. animsys_refactor/__init__.pyi +36 -7
  3. aud/__init__.pyi +307 -321
  4. bgl/__init__.pyi +2926 -865
  5. bl_app_override/__init__.pyi +14 -4
  6. bl_app_override/helpers/__init__.pyi +24 -3
  7. bl_app_template_utils/__init__.pyi +19 -5
  8. bl_console_utils/__init__.pyi +0 -1
  9. bl_console_utils/autocomplete/__init__.pyi +2 -3
  10. bl_console_utils/autocomplete/complete_calltip/__init__.pyi +24 -6
  11. bl_console_utils/autocomplete/complete_import/__init__.pyi +14 -4
  12. bl_console_utils/autocomplete/complete_namespace/__init__.pyi +24 -6
  13. bl_console_utils/autocomplete/intellisense/__init__.pyi +9 -3
  14. bl_i18n_utils/__init__.pyi +2 -3
  15. bl_i18n_utils/bl_extract_messages/__init__.pyi +74 -16
  16. bl_i18n_utils/merge_po/__init__.pyi +4 -2
  17. bl_i18n_utils/settings/__init__.pyi +53 -7
  18. bl_i18n_utils/utils/__init__.pyi +332 -45
  19. bl_i18n_utils/utils_cli/__init__.pyi +29 -7
  20. bl_i18n_utils/utils_languages_menu/__init__.pyi +4 -2
  21. bl_i18n_utils/utils_rtl/__init__.pyi +9 -3
  22. bl_keymap_utils/__init__.pyi +2 -3
  23. bl_keymap_utils/io/__init__.pyi +44 -10
  24. bl_keymap_utils/keymap_from_toolbar/__init__.pyi +4 -2
  25. bl_keymap_utils/keymap_hierarchy/__init__.pyi +4 -2
  26. bl_keymap_utils/platform_helpers/__init__.pyi +9 -3
  27. bl_keymap_utils/versioning/__init__.pyi +4 -2
  28. bl_math/__init__.pyi +21 -22
  29. bl_operators/__init__.pyi +30 -24
  30. bl_operators/add_mesh_torus/__init__.pyi +171 -38
  31. bl_operators/anim/__init__.pyi +1065 -227
  32. bl_operators/assets/__init__.pyi +427 -93
  33. bl_operators/bmesh/__init__.pyi +0 -1
  34. bl_operators/bmesh/find_adjacent/__init__.pyi +44 -10
  35. bl_operators/clip/__init__.pyi +1342 -288
  36. bl_operators/console/__init__.pyi +647 -141
  37. bl_operators/constraint/__init__.pyi +524 -113
  38. bl_operators/file/__init__.pyi +396 -85
  39. bl_operators/freestyle/__init__.pyi +532 -114
  40. bl_operators/geometry_nodes/__init__.pyi +2412 -597
  41. bl_operators/image/__init__.pyi +380 -83
  42. bl_operators/mesh/__init__.pyi +401 -86
  43. bl_operators/node/__init__.pyi +1756 -385
  44. bl_operators/object/__init__.pyi +2022 -553
  45. bl_operators/object_align/__init__.pyi +145 -32
  46. bl_operators/object_quick_effects/__init__.pyi +555 -125
  47. bl_operators/object_randomize_transform/__init__.pyi +136 -33
  48. bl_operators/presets/__init__.pyi +3516 -709
  49. bl_operators/rigidbody/__init__.pyi +401 -86
  50. bl_operators/screen_play_rendered_anim/__init__.pyi +129 -30
  51. bl_operators/sequencer/__init__.pyi +731 -150
  52. bl_operators/spreadsheet/__init__.pyi +145 -31
  53. bl_operators/userpref/__init__.pyi +3416 -825
  54. bl_operators/uvcalc_follow_active/__init__.pyi +149 -33
  55. bl_operators/uvcalc_lightmap/__init__.pyi +187 -35
  56. bl_operators/uvcalc_transform/__init__.pyi +344 -74
  57. bl_operators/vertexpaint_dirt/__init__.pyi +140 -31
  58. bl_operators/view3d/__init__.pyi +697 -147
  59. bl_operators/wm/__init__.pyi +6287 -1534
  60. bl_previews_utils/__init__.pyi +0 -1
  61. bl_previews_utils/bl_previews_render/__init__.pyi +34 -8
  62. bl_rna_utils/__init__.pyi +0 -1
  63. bl_rna_utils/data_path/__init__.pyi +12 -3
  64. bl_text_utils/__init__.pyi +0 -1
  65. bl_text_utils/external_editor/__init__.pyi +4 -2
  66. bl_ui/__init__.pyi +567 -170
  67. bl_ui/anim/__init__.pyi +164 -34
  68. bl_ui/asset_shelf/__init__.pyi +146 -32
  69. bl_ui/generic_ui_list/__init__.pyi +471 -100
  70. bl_ui/node_add_menu/__init__.pyi +196 -41
  71. bl_ui/node_add_menu_compositor/__init__.pyi +3017 -622
  72. bl_ui/node_add_menu_geometry/__init__.pyi +8075 -1592
  73. bl_ui/node_add_menu_shader/__init__.pyi +1709 -349
  74. bl_ui/node_add_menu_texture/__init__.pyi +1502 -306
  75. bl_ui/properties_animviz/__init__.pyi +32 -3
  76. bl_ui/properties_collection/__init__.pyi +787 -180
  77. bl_ui/properties_constraint/__init__.pyi +28635 -5524
  78. bl_ui/properties_data_armature/__init__.pyi +1905 -449
  79. bl_ui/properties_data_bone/__init__.pyi +1560 -337
  80. bl_ui/properties_data_camera/__init__.pyi +2269 -495
  81. bl_ui/properties_data_curve/__init__.pyi +2362 -535
  82. bl_ui/properties_data_curves/__init__.pyi +951 -204
  83. bl_ui/properties_data_empty/__init__.pyi +317 -70
  84. bl_ui/properties_data_gpencil/__init__.pyi +2924 -735
  85. bl_ui/properties_data_grease_pencil/__init__.pyi +1631 -189
  86. bl_ui/properties_data_lattice/__init__.pyi +472 -105
  87. bl_ui/properties_data_light/__init__.pyi +1570 -338
  88. bl_ui/properties_data_lightprobe/__init__.pyi +938 -209
  89. bl_ui/properties_data_mesh/__init__.pyi +3205 -768
  90. bl_ui/properties_data_metaball/__init__.pyi +774 -171
  91. bl_ui/properties_data_modifier/__init__.pyi +1554 -329
  92. bl_ui/properties_data_pointcloud/__init__.pyi +821 -195
  93. bl_ui/properties_data_shaderfx/__init__.pyi +154 -35
  94. bl_ui/properties_data_speaker/__init__.pyi +782 -169
  95. bl_ui/properties_data_volume/__init__.pyi +1243 -282
  96. bl_ui/properties_freestyle/__init__.pyi +4071 -1031
  97. bl_ui/properties_grease_pencil_common/__init__.pyi +2399 -484
  98. bl_ui/properties_mask_common/__init__.pyi +1256 -250
  99. bl_ui/properties_material/__init__.pyi +2351 -543
  100. bl_ui/properties_material_gpencil/__init__.pyi +1590 -366
  101. bl_ui/properties_object/__init__.pyi +2179 -513
  102. bl_ui/properties_output/__init__.pyi +2956 -706
  103. bl_ui/properties_paint_common/__init__.pyi +947 -141
  104. bl_ui/properties_particle/__init__.pyi +8322 -1971
  105. bl_ui/properties_physics_cloth/__init__.pyi +2254 -509
  106. bl_ui/properties_physics_common/__init__.pyi +200 -45
  107. bl_ui/properties_physics_dynamicpaint/__init__.pyi +4454 -966
  108. bl_ui/properties_physics_field/__init__.pyi +1695 -365
  109. bl_ui/properties_physics_fluid/__init__.pyi +6127 -1281
  110. bl_ui/properties_physics_geometry_nodes/__init__.pyi +157 -33
  111. bl_ui/properties_physics_rigidbody/__init__.pyi +1254 -279
  112. bl_ui/properties_physics_rigidbody_constraint/__init__.pyi +2053 -484
  113. bl_ui/properties_physics_softbody/__init__.pyi +2394 -543
  114. bl_ui/properties_render/__init__.pyi +8312 -1934
  115. bl_ui/properties_scene/__init__.pyi +2211 -540
  116. bl_ui/properties_texture/__init__.pyi +4185 -1014
  117. bl_ui/properties_view_layer/__init__.pyi +2803 -665
  118. bl_ui/properties_workspace/__init__.pyi +626 -149
  119. bl_ui/properties_world/__init__.pyi +1092 -235
  120. bl_ui/space_clip/__init__.pyi +11475 -2806
  121. bl_ui/space_console/__init__.pyi +967 -203
  122. bl_ui/space_dopesheet/__init__.pyi +4260 -967
  123. bl_ui/space_filebrowser/__init__.pyi +4852 -1188
  124. bl_ui/space_graph/__init__.pyi +3251 -703
  125. bl_ui/space_image/__init__.pyi +12218 -2968
  126. bl_ui/space_info/__init__.pyi +964 -201
  127. bl_ui/space_nla/__init__.pyi +2756 -585
  128. bl_ui/space_node/__init__.pyi +5661 -1266
  129. bl_ui/space_outliner/__init__.pyi +2294 -479
  130. bl_ui/space_properties/__init__.pyi +417 -93
  131. bl_ui/space_sequencer/__init__.pyi +12436 -3010
  132. bl_ui/space_spreadsheet/__init__.pyi +184 -37
  133. bl_ui/space_statusbar/__init__.pyi +135 -31
  134. bl_ui/space_text/__init__.pyi +2556 -543
  135. bl_ui/space_time/__init__.pyi +1151 -244
  136. bl_ui/space_toolsystem_common/__init__.pyi +368 -67
  137. bl_ui/space_toolsystem_toolbar/__init__.pyi +1378 -229
  138. bl_ui/space_topbar/__init__.pyi +4214 -888
  139. bl_ui/space_userpref/__init__.pyi +13920 -3468
  140. bl_ui/space_view3d/__init__.pyi +42751 -9613
  141. bl_ui/space_view3d_toolbar/__init__.pyi +16379 -3860
  142. bl_ui/utils/__init__.pyi +42 -5
  143. bl_ui_utils/__init__.pyi +0 -1
  144. bl_ui_utils/bug_report_url/__init__.pyi +4 -2
  145. bl_ui_utils/layout/__init__.pyi +4 -2
  146. blend_render_info/__init__.pyi +13 -4
  147. blf/__init__.pyi +15 -18
  148. bmesh/__init__.pyi +18 -18
  149. bmesh/geometry/__init__.pyi +5 -6
  150. bmesh/ops/__init__.pyi +1337 -1158
  151. bmesh/types/__init__.pyi +464 -374
  152. bmesh/utils/__init__.pyi +64 -70
  153. bpy/__init__.pyi +6 -7
  154. bpy/app/__init__.pyi +36 -38
  155. bpy/app/handlers/__init__.pyi +37 -38
  156. bpy/app/icons/__init__.pyi +8 -11
  157. bpy/app/timers/__init__.pyi +18 -17
  158. bpy/app/translations/__init__.pyi +32 -30
  159. bpy/msgbus/__init__.pyi +25 -20
  160. bpy/ops/__init__.pyi +63 -64
  161. bpy/ops/action/__init__.pyi +408 -436
  162. bpy/ops/anim/__init__.pyi +459 -577
  163. bpy/ops/armature/__init__.pyi +396 -498
  164. bpy/ops/asset/__init__.pyi +187 -213
  165. bpy/ops/boid/__init__.pyi +50 -68
  166. bpy/ops/brush/__init__.pyi +72 -97
  167. bpy/ops/buttons/__init__.pyi +202 -193
  168. bpy/ops/cachefile/__init__.pyi +198 -188
  169. bpy/ops/camera/__init__.pyi +24 -31
  170. bpy/ops/clip/__init__.pyi +1021 -1082
  171. bpy/ops/cloth/__init__.pyi +11 -15
  172. bpy/ops/collection/__init__.pyi +36 -51
  173. bpy/ops/console/__init__.pyi +155 -209
  174. bpy/ops/constraint/__init__.pyi +286 -254
  175. bpy/ops/curve/__init__.pyi +597 -659
  176. bpy/ops/curves/__init__.pyi +191 -225
  177. bpy/ops/cycles/__init__.pyi +21 -30
  178. bpy/ops/dpaint/__init__.pyi +34 -47
  179. bpy/ops/ed/__init__.pyi +160 -176
  180. bpy/ops/export_anim/__init__.pyi +51 -34
  181. bpy/ops/export_mesh/__init__.pyi +47 -45
  182. bpy/ops/export_scene/__init__.pyi +659 -504
  183. bpy/ops/file/__init__.pyi +469 -474
  184. bpy/ops/fluid/__init__.pyi +89 -119
  185. bpy/ops/font/__init__.pyi +325 -361
  186. bpy/ops/geometry/__init__.pyi +86 -114
  187. bpy/ops/gizmogroup/__init__.pyi +22 -28
  188. bpy/ops/gpencil/__init__.pyi +1900 -1976
  189. bpy/ops/graph/__init__.pyi +875 -894
  190. bpy/ops/grease_pencil/__init__.pyi +572 -508
  191. bpy/ops/image/__init__.pyi +805 -855
  192. bpy/ops/import_anim/__init__.pyi +66 -46
  193. bpy/ops/import_curve/__init__.pyi +7 -11
  194. bpy/ops/import_mesh/__init__.pyi +19 -25
  195. bpy/ops/import_scene/__init__.pyi +164 -147
  196. bpy/ops/info/__init__.pyi +88 -85
  197. bpy/ops/lattice/__init__.pyi +86 -90
  198. bpy/ops/marker/__init__.pyi +135 -146
  199. bpy/ops/mask/__init__.pyi +372 -436
  200. bpy/ops/material/__init__.pyi +18 -25
  201. bpy/ops/mball/__init__.pyi +93 -99
  202. bpy/ops/mesh/__init__.pyi +2525 -2664
  203. bpy/ops/nla/__init__.pyi +398 -455
  204. bpy/ops/node/__init__.pyi +1015 -1207
  205. bpy/ops/object/__init__.pyi +3423 -3390
  206. bpy/ops/outliner/__init__.pyi +667 -685
  207. bpy/ops/paint/__init__.pyi +719 -672
  208. bpy/ops/paintcurve/__init__.pyi +64 -85
  209. bpy/ops/palette/__init__.pyi +48 -67
  210. bpy/ops/particle/__init__.pyi +323 -367
  211. bpy/ops/pose/__init__.pyi +569 -474
  212. bpy/ops/poselib/__init__.pyi +77 -100
  213. bpy/ops/preferences/__init__.pyi +460 -512
  214. bpy/ops/ptcache/__init__.pyi +46 -63
  215. bpy/ops/render/__init__.pyi +121 -155
  216. bpy/ops/rigidbody/__init__.pyi +148 -143
  217. bpy/ops/scene/__init__.pyi +336 -380
  218. bpy/ops/screen/__init__.pyi +454 -530
  219. bpy/ops/script/__init__.pyi +19 -28
  220. bpy/ops/sculpt/__init__.pyi +734 -587
  221. bpy/ops/sculpt_curves/__init__.pyi +51 -56
  222. bpy/ops/sequencer/__init__.pyi +1617 -1500
  223. bpy/ops/sound/__init__.pyi +392 -315
  224. bpy/ops/spreadsheet/__init__.pyi +31 -42
  225. bpy/ops/surface/__init__.pyi +198 -163
  226. bpy/ops/text/__init__.pyi +479 -545
  227. bpy/ops/text_editor/__init__.pyi +11 -15
  228. bpy/ops/texture/__init__.pyi +26 -36
  229. bpy/ops/transform/__init__.pyi +825 -941
  230. bpy/ops/ui/__init__.pyi +246 -295
  231. bpy/ops/uilist/__init__.pyi +34 -38
  232. bpy/ops/uv/__init__.pyi +912 -824
  233. bpy/ops/view2d/__init__.pyi +157 -197
  234. bpy/ops/view3d/__init__.pyi +777 -878
  235. bpy/ops/wm/__init__.pyi +4102 -3595
  236. bpy/ops/workspace/__init__.pyi +42 -58
  237. bpy/ops/world/__init__.pyi +6 -9
  238. bpy/path/__init__.pyi +166 -109
  239. bpy/props/__init__.pyi +478 -395
  240. bpy/types/__init__.pyi +87194 -81467
  241. bpy/utils/__init__.pyi +325 -169
  242. bpy/utils/previews/__init__.pyi +108 -21
  243. bpy/utils/units/__init__.pyi +37 -39
  244. bpy_extras/__init__.pyi +4 -9
  245. bpy_extras/anim_utils/__init__.pyi +25 -55
  246. bpy_extras/asset_utils/__init__.pyi +3 -13
  247. bpy_extras/id_map_utils/__init__.pyi +1 -4
  248. bpy_extras/image_utils/__init__.pyi +33 -23
  249. bpy_extras/io_utils/__init__.pyi +116 -66
  250. bpy_extras/keyconfig_utils/__init__.pyi +5 -3
  251. bpy_extras/mesh_utils/__init__.pyi +42 -34
  252. bpy_extras/node_utils/__init__.pyi +4 -4
  253. bpy_extras/object_utils/__init__.pyi +58 -43
  254. bpy_extras/view3d_utils/__init__.pyi +64 -63
  255. bpy_restrict_state/__init__.pyi +14 -2
  256. bpy_types/__init__.pyi +3873 -998
  257. console_python/__init__.pyi +41 -8
  258. console_shell/__init__.pyi +24 -6
  259. {fake_bpy_module-20240210.dist-info → fake_bpy_module-20240326.dist-info}/METADATA +1 -1
  260. fake_bpy_module-20240326.dist-info/RECORD +343 -0
  261. {fake_bpy_module-20240210.dist-info → fake_bpy_module-20240326.dist-info}/WHEEL +1 -1
  262. freestyle/__init__.pyi +4 -5
  263. freestyle/chainingiterators/__init__.pyi +229 -73
  264. freestyle/functions/__init__.pyi +624 -402
  265. freestyle/predicates/__init__.pyi +381 -169
  266. freestyle/shaders/__init__.pyi +424 -155
  267. freestyle/types/__init__.pyi +1572 -726
  268. freestyle/utils/ContextFunctions/__init__.pyi +54 -43
  269. freestyle/utils/__init__.pyi +67 -31
  270. gpu/__init__.pyi +3 -4
  271. gpu/capabilities/__init__.pyi +57 -37
  272. gpu/matrix/__init__.pyi +14 -17
  273. gpu/platform/__init__.pyi +5 -6
  274. gpu/select/__init__.pyi +2 -5
  275. gpu/shader/__init__.pyi +14 -12
  276. gpu/state/__init__.pyi +48 -62
  277. gpu/texture/__init__.pyi +7 -7
  278. gpu/types/__init__.pyi +670 -229
  279. gpu_extras/__init__.pyi +1 -2
  280. gpu_extras/batch/__init__.pyi +27 -6
  281. gpu_extras/presets/__init__.pyi +67 -27
  282. graphviz_export/__init__.pyi +9 -3
  283. idprop/__init__.pyi +0 -1
  284. idprop/types/__init__.pyi +42 -13
  285. imbuf/__init__.pyi +6 -10
  286. imbuf/types/__init__.pyi +8 -16
  287. keyingsets_builtins/__init__.pyi +3149 -702
  288. keyingsets_utils/__init__.pyi +69 -15
  289. mathutils/__init__.pyi +951 -876
  290. mathutils/bvhtree/__init__.pyi +47 -48
  291. mathutils/geometry/__init__.pyi +237 -242
  292. mathutils/interpolate/__init__.pyi +3 -6
  293. mathutils/kdtree/__init__.pyi +23 -26
  294. mathutils/noise/__init__.pyi +50 -51
  295. nodeitems_builtins/__init__.pyi +50 -11
  296. nodeitems_utils/__init__.pyi +58 -11
  297. rna_info/__init__.pyi +230 -27
  298. rna_keymap_ui/__init__.pyi +29 -7
  299. rna_prop_ui/__init__.pyi +69 -13
  300. rna_xml/__init__.pyi +29 -7
  301. sys_info/__init__.pyi +4 -2
  302. bpy_extras/bmesh_utils/__init__.pyi +0 -7
  303. bpy_extras/extensions/__init__.pyi +0 -5
  304. bpy_extras/extensions/junction_module/__init__.pyi +0 -13
  305. bpy_extras/node_shader_utils/__init__.pyi +0 -132
  306. bpy_extras/wm_utils/__init__.pyi +0 -5
  307. bpy_extras/wm_utils/progress_report/__init__.pyi +0 -30
  308. fake_bpy_module-20240210.dist-info/RECORD +0 -349
  309. {fake_bpy_module-20240210.dist-info → fake_bpy_module-20240326.dist-info}/top_level.txt +0 -0
@@ -1,128 +1,131 @@
1
- import sys
2
1
  import typing
3
2
  import bpy.types
4
3
 
5
4
  GenericType = typing.TypeVar("GenericType")
6
5
 
7
6
  def assign_action(
8
- override_context: typing.Optional[
9
- typing.Union[typing.Dict, "bpy.types.Context"]
10
- ] = None,
11
- execution_context: typing.Optional[typing.Union[str, int]] = None,
12
- undo: typing.Optional[bool] = None,
7
+ override_context: typing.Union[dict, bpy.types.Context] = None,
8
+ execution_context: typing.Union[str, int] = None,
9
+ undo: bool = None,
13
10
  ):
14
- """Set this pose Action as active Action on the active Object :File: `addons/pose_library/operators.py\:198 <https://projects.blender.org/blender/blender-addons/addons/pose_library/operators.py#L198>`__
11
+ """Set this pose Action as active Action on the active Object
15
12
 
16
- :type override_context: typing.Optional[typing.Union[typing.Dict, 'bpy.types.Context']]
17
- :type execution_context: typing.Optional[typing.Union[str, int]]
18
- :type undo: typing.Optional[bool]
13
+ :type override_context: typing.Union[dict, bpy.types.Context]
14
+ :type execution_context: typing.Union[str, int]
15
+ :type undo: bool
19
16
  """
20
17
 
21
18
  ...
22
19
 
23
20
  def bundle_install(
24
- override_context: typing.Optional[
25
- typing.Union[typing.Dict, "bpy.types.Context"]
26
- ] = None,
27
- execution_context: typing.Optional[typing.Union[str, int]] = None,
28
- undo: typing.Optional[bool] = None,
29
- *,
30
- asset_library_reference: typing.Optional[typing.Union[str, int, typing.Any]] = "",
21
+ override_context: typing.Union[dict, bpy.types.Context] = None,
22
+ execution_context: typing.Union[str, int] = None,
23
+ undo: bool = None,
24
+ asset_library_reference: typing.Union[str, int, typing.Any] = "",
31
25
  filepath: typing.Union[str, typing.Any] = "",
32
- hide_props_region: typing.Optional[typing.Union[bool, typing.Any]] = True,
33
- check_existing: typing.Optional[typing.Union[bool, typing.Any]] = True,
34
- filter_blender: typing.Optional[typing.Union[bool, typing.Any]] = True,
35
- filter_backup: typing.Optional[typing.Union[bool, typing.Any]] = False,
36
- filter_image: typing.Optional[typing.Union[bool, typing.Any]] = False,
37
- filter_movie: typing.Optional[typing.Union[bool, typing.Any]] = False,
38
- filter_python: typing.Optional[typing.Union[bool, typing.Any]] = False,
39
- filter_font: typing.Optional[typing.Union[bool, typing.Any]] = False,
40
- filter_sound: typing.Optional[typing.Union[bool, typing.Any]] = False,
41
- filter_text: typing.Optional[typing.Union[bool, typing.Any]] = False,
42
- filter_archive: typing.Optional[typing.Union[bool, typing.Any]] = False,
43
- filter_btx: typing.Optional[typing.Union[bool, typing.Any]] = False,
44
- filter_collada: typing.Optional[typing.Union[bool, typing.Any]] = False,
45
- filter_alembic: typing.Optional[typing.Union[bool, typing.Any]] = False,
46
- filter_usd: typing.Optional[typing.Union[bool, typing.Any]] = False,
47
- filter_obj: typing.Optional[typing.Union[bool, typing.Any]] = False,
48
- filter_volume: typing.Optional[typing.Union[bool, typing.Any]] = False,
49
- filter_folder: typing.Optional[typing.Union[bool, typing.Any]] = True,
50
- filter_blenlib: typing.Optional[typing.Union[bool, typing.Any]] = False,
51
- filemode: typing.Optional[typing.Any] = 8,
52
- display_type: typing.Optional[typing.Any] = "DEFAULT",
53
- sort_method: typing.Optional[typing.Union[str, int, typing.Any]] = "",
26
+ hide_props_region: typing.Union[bool, typing.Any] = True,
27
+ check_existing: typing.Union[bool, typing.Any] = True,
28
+ filter_blender: typing.Union[bool, typing.Any] = True,
29
+ filter_backup: typing.Union[bool, typing.Any] = False,
30
+ filter_image: typing.Union[bool, typing.Any] = False,
31
+ filter_movie: typing.Union[bool, typing.Any] = False,
32
+ filter_python: typing.Union[bool, typing.Any] = False,
33
+ filter_font: typing.Union[bool, typing.Any] = False,
34
+ filter_sound: typing.Union[bool, typing.Any] = False,
35
+ filter_text: typing.Union[bool, typing.Any] = False,
36
+ filter_archive: typing.Union[bool, typing.Any] = False,
37
+ filter_btx: typing.Union[bool, typing.Any] = False,
38
+ filter_collada: typing.Union[bool, typing.Any] = False,
39
+ filter_alembic: typing.Union[bool, typing.Any] = False,
40
+ filter_usd: typing.Union[bool, typing.Any] = False,
41
+ filter_obj: typing.Union[bool, typing.Any] = False,
42
+ filter_volume: typing.Union[bool, typing.Any] = False,
43
+ filter_folder: typing.Union[bool, typing.Any] = True,
44
+ filter_blenlib: typing.Union[bool, typing.Any] = False,
45
+ filemode: typing.Any = 8,
46
+ display_type: typing.Any = "DEFAULT",
47
+ sort_method: typing.Union[str, int, typing.Any] = "",
54
48
  ):
55
49
  """Copy the current .blend file into an Asset Library. Only works on standalone .blend files (i.e. when no other files are referenced)
56
50
 
57
- :type override_context: typing.Optional[typing.Union[typing.Dict, 'bpy.types.Context']]
58
- :type execution_context: typing.Optional[typing.Union[str, int]]
59
- :type undo: typing.Optional[bool]
60
- :param asset_library_reference: asset_library_reference
61
- :type asset_library_reference: typing.Optional[typing.Union[str, int, typing.Any]]
62
- :param filepath: File Path, Path to file
63
- :type filepath: typing.Union[str, typing.Any]
64
- :param hide_props_region: Hide Operator Properties, Collapse the region displaying the operator settings
65
- :type hide_props_region: typing.Optional[typing.Union[bool, typing.Any]]
66
- :param check_existing: Check Existing, Check and warn on overwriting existing files
67
- :type check_existing: typing.Optional[typing.Union[bool, typing.Any]]
68
- :param filter_blender: Filter .blend files
69
- :type filter_blender: typing.Optional[typing.Union[bool, typing.Any]]
70
- :param filter_backup: Filter .blend files
71
- :type filter_backup: typing.Optional[typing.Union[bool, typing.Any]]
72
- :param filter_image: Filter image files
73
- :type filter_image: typing.Optional[typing.Union[bool, typing.Any]]
74
- :param filter_movie: Filter movie files
75
- :type filter_movie: typing.Optional[typing.Union[bool, typing.Any]]
76
- :param filter_python: Filter Python files
77
- :type filter_python: typing.Optional[typing.Union[bool, typing.Any]]
78
- :param filter_font: Filter font files
79
- :type filter_font: typing.Optional[typing.Union[bool, typing.Any]]
80
- :param filter_sound: Filter sound files
81
- :type filter_sound: typing.Optional[typing.Union[bool, typing.Any]]
82
- :param filter_text: Filter text files
83
- :type filter_text: typing.Optional[typing.Union[bool, typing.Any]]
84
- :param filter_archive: Filter archive files
85
- :type filter_archive: typing.Optional[typing.Union[bool, typing.Any]]
86
- :param filter_btx: Filter btx files
87
- :type filter_btx: typing.Optional[typing.Union[bool, typing.Any]]
88
- :param filter_collada: Filter COLLADA files
89
- :type filter_collada: typing.Optional[typing.Union[bool, typing.Any]]
90
- :param filter_alembic: Filter Alembic files
91
- :type filter_alembic: typing.Optional[typing.Union[bool, typing.Any]]
92
- :param filter_usd: Filter USD files
93
- :type filter_usd: typing.Optional[typing.Union[bool, typing.Any]]
94
- :param filter_obj: Filter OBJ files
95
- :type filter_obj: typing.Optional[typing.Union[bool, typing.Any]]
96
- :param filter_volume: Filter OpenVDB volume files
97
- :type filter_volume: typing.Optional[typing.Union[bool, typing.Any]]
98
- :param filter_folder: Filter folders
99
- :type filter_folder: typing.Optional[typing.Union[bool, typing.Any]]
100
- :param filter_blenlib: Filter Blender IDs
101
- :type filter_blenlib: typing.Optional[typing.Union[bool, typing.Any]]
102
- :param filemode: File Browser Mode, The setting for the file browser mode to load a .blend file, a library or a special file
103
- :type filemode: typing.Optional[typing.Any]
104
- :param display_type: Display Type * ``DEFAULT`` Default -- Automatically determine display type for files. * ``LIST_VERTICAL`` Short List -- Display files as short list. * ``LIST_HORIZONTAL`` Long List -- Display files as a detailed list. * ``THUMBNAIL`` Thumbnails -- Display files as thumbnails.
105
- :type display_type: typing.Optional[typing.Any]
106
- :param sort_method: File sorting mode
107
- :type sort_method: typing.Optional[typing.Union[str, int, typing.Any]]
51
+ :type override_context: typing.Union[dict, bpy.types.Context]
52
+ :type execution_context: typing.Union[str, int]
53
+ :type undo: bool
54
+ :param asset_library_reference: asset_library_reference
55
+ :type asset_library_reference: typing.Union[str, int, typing.Any]
56
+ :param filepath: File Path, Path to file
57
+ :type filepath: typing.Union[str, typing.Any]
58
+ :param hide_props_region: Hide Operator Properties, Collapse the region displaying the operator settings
59
+ :type hide_props_region: typing.Union[bool, typing.Any]
60
+ :param check_existing: Check Existing, Check and warn on overwriting existing files
61
+ :type check_existing: typing.Union[bool, typing.Any]
62
+ :param filter_blender: Filter .blend files
63
+ :type filter_blender: typing.Union[bool, typing.Any]
64
+ :param filter_backup: Filter .blend files
65
+ :type filter_backup: typing.Union[bool, typing.Any]
66
+ :param filter_image: Filter image files
67
+ :type filter_image: typing.Union[bool, typing.Any]
68
+ :param filter_movie: Filter movie files
69
+ :type filter_movie: typing.Union[bool, typing.Any]
70
+ :param filter_python: Filter Python files
71
+ :type filter_python: typing.Union[bool, typing.Any]
72
+ :param filter_font: Filter font files
73
+ :type filter_font: typing.Union[bool, typing.Any]
74
+ :param filter_sound: Filter sound files
75
+ :type filter_sound: typing.Union[bool, typing.Any]
76
+ :param filter_text: Filter text files
77
+ :type filter_text: typing.Union[bool, typing.Any]
78
+ :param filter_archive: Filter archive files
79
+ :type filter_archive: typing.Union[bool, typing.Any]
80
+ :param filter_btx: Filter btx files
81
+ :type filter_btx: typing.Union[bool, typing.Any]
82
+ :param filter_collada: Filter COLLADA files
83
+ :type filter_collada: typing.Union[bool, typing.Any]
84
+ :param filter_alembic: Filter Alembic files
85
+ :type filter_alembic: typing.Union[bool, typing.Any]
86
+ :param filter_usd: Filter USD files
87
+ :type filter_usd: typing.Union[bool, typing.Any]
88
+ :param filter_obj: Filter OBJ files
89
+ :type filter_obj: typing.Union[bool, typing.Any]
90
+ :param filter_volume: Filter OpenVDB volume files
91
+ :type filter_volume: typing.Union[bool, typing.Any]
92
+ :param filter_folder: Filter folders
93
+ :type filter_folder: typing.Union[bool, typing.Any]
94
+ :param filter_blenlib: Filter Blender IDs
95
+ :type filter_blenlib: typing.Union[bool, typing.Any]
96
+ :param filemode: File Browser Mode, The setting for the file browser mode to load a .blend file, a library or a special file
97
+ :type filemode: typing.Any
98
+ :param display_type: Display Type
99
+
100
+ DEFAULT
101
+ Default -- Automatically determine display type for files.
102
+
103
+ LIST_VERTICAL
104
+ Short List -- Display files as short list.
105
+
106
+ LIST_HORIZONTAL
107
+ Long List -- Display files as a detailed list.
108
+
109
+ THUMBNAIL
110
+ Thumbnails -- Display files as thumbnails.
111
+ :type display_type: typing.Any
112
+ :param sort_method: File sorting mode
113
+ :type sort_method: typing.Union[str, int, typing.Any]
108
114
  """
109
115
 
110
116
  ...
111
117
 
112
118
  def catalog_delete(
113
- override_context: typing.Optional[
114
- typing.Union[typing.Dict, "bpy.types.Context"]
115
- ] = None,
116
- execution_context: typing.Optional[typing.Union[str, int]] = None,
117
- undo: typing.Optional[bool] = None,
118
- *,
119
+ override_context: typing.Union[dict, bpy.types.Context] = None,
120
+ execution_context: typing.Union[str, int] = None,
121
+ undo: bool = None,
119
122
  catalog_id: typing.Union[str, typing.Any] = "",
120
123
  ):
121
124
  """Remove an asset catalog from the asset library (contained assets will not be affected and show up as unassigned)
122
125
 
123
- :type override_context: typing.Optional[typing.Union[typing.Dict, 'bpy.types.Context']]
124
- :type execution_context: typing.Optional[typing.Union[str, int]]
125
- :type undo: typing.Optional[bool]
126
+ :type override_context: typing.Union[dict, bpy.types.Context]
127
+ :type execution_context: typing.Union[str, int]
128
+ :type undo: bool
126
129
  :param catalog_id: Catalog ID, ID of the catalog to delete
127
130
  :type catalog_id: typing.Union[str, typing.Any]
128
131
  """
@@ -130,19 +133,16 @@ def catalog_delete(
130
133
  ...
131
134
 
132
135
  def catalog_new(
133
- override_context: typing.Optional[
134
- typing.Union[typing.Dict, "bpy.types.Context"]
135
- ] = None,
136
- execution_context: typing.Optional[typing.Union[str, int]] = None,
137
- undo: typing.Optional[bool] = None,
138
- *,
136
+ override_context: typing.Union[dict, bpy.types.Context] = None,
137
+ execution_context: typing.Union[str, int] = None,
138
+ undo: bool = None,
139
139
  parent_path: typing.Union[str, typing.Any] = "",
140
140
  ):
141
141
  """Create a new catalog to put assets in
142
142
 
143
- :type override_context: typing.Optional[typing.Union[typing.Dict, 'bpy.types.Context']]
144
- :type execution_context: typing.Optional[typing.Union[str, int]]
145
- :type undo: typing.Optional[bool]
143
+ :type override_context: typing.Union[dict, bpy.types.Context]
144
+ :type execution_context: typing.Union[str, int]
145
+ :type undo: bool
146
146
  :param parent_path: Parent Path, Optional path defining the location to put the new catalog under
147
147
  :type parent_path: typing.Union[str, typing.Any]
148
148
  """
@@ -150,201 +150,175 @@ def catalog_new(
150
150
  ...
151
151
 
152
152
  def catalog_redo(
153
- override_context: typing.Optional[
154
- typing.Union[typing.Dict, "bpy.types.Context"]
155
- ] = None,
156
- execution_context: typing.Optional[typing.Union[str, int]] = None,
157
- undo: typing.Optional[bool] = None,
153
+ override_context: typing.Union[dict, bpy.types.Context] = None,
154
+ execution_context: typing.Union[str, int] = None,
155
+ undo: bool = None,
158
156
  ):
159
157
  """Redo the last undone edit to the asset catalogs
160
158
 
161
- :type override_context: typing.Optional[typing.Union[typing.Dict, 'bpy.types.Context']]
162
- :type execution_context: typing.Optional[typing.Union[str, int]]
163
- :type undo: typing.Optional[bool]
159
+ :type override_context: typing.Union[dict, bpy.types.Context]
160
+ :type execution_context: typing.Union[str, int]
161
+ :type undo: bool
164
162
  """
165
163
 
166
164
  ...
167
165
 
168
166
  def catalog_undo(
169
- override_context: typing.Optional[
170
- typing.Union[typing.Dict, "bpy.types.Context"]
171
- ] = None,
172
- execution_context: typing.Optional[typing.Union[str, int]] = None,
173
- undo: typing.Optional[bool] = None,
167
+ override_context: typing.Union[dict, bpy.types.Context] = None,
168
+ execution_context: typing.Union[str, int] = None,
169
+ undo: bool = None,
174
170
  ):
175
171
  """Undo the last edit to the asset catalogs
176
172
 
177
- :type override_context: typing.Optional[typing.Union[typing.Dict, 'bpy.types.Context']]
178
- :type execution_context: typing.Optional[typing.Union[str, int]]
179
- :type undo: typing.Optional[bool]
173
+ :type override_context: typing.Union[dict, bpy.types.Context]
174
+ :type execution_context: typing.Union[str, int]
175
+ :type undo: bool
180
176
  """
181
177
 
182
178
  ...
183
179
 
184
180
  def catalog_undo_push(
185
- override_context: typing.Optional[
186
- typing.Union[typing.Dict, "bpy.types.Context"]
187
- ] = None,
188
- execution_context: typing.Optional[typing.Union[str, int]] = None,
189
- undo: typing.Optional[bool] = None,
181
+ override_context: typing.Union[dict, bpy.types.Context] = None,
182
+ execution_context: typing.Union[str, int] = None,
183
+ undo: bool = None,
190
184
  ):
191
185
  """Store the current state of the asset catalogs in the undo buffer
192
186
 
193
- :type override_context: typing.Optional[typing.Union[typing.Dict, 'bpy.types.Context']]
194
- :type execution_context: typing.Optional[typing.Union[str, int]]
195
- :type undo: typing.Optional[bool]
187
+ :type override_context: typing.Union[dict, bpy.types.Context]
188
+ :type execution_context: typing.Union[str, int]
189
+ :type undo: bool
196
190
  """
197
191
 
198
192
  ...
199
193
 
200
194
  def catalogs_save(
201
- override_context: typing.Optional[
202
- typing.Union[typing.Dict, "bpy.types.Context"]
203
- ] = None,
204
- execution_context: typing.Optional[typing.Union[str, int]] = None,
205
- undo: typing.Optional[bool] = None,
195
+ override_context: typing.Union[dict, bpy.types.Context] = None,
196
+ execution_context: typing.Union[str, int] = None,
197
+ undo: bool = None,
206
198
  ):
207
199
  """Make any edits to any catalogs permanent by writing the current set up to the asset library
208
200
 
209
- :type override_context: typing.Optional[typing.Union[typing.Dict, 'bpy.types.Context']]
210
- :type execution_context: typing.Optional[typing.Union[str, int]]
211
- :type undo: typing.Optional[bool]
201
+ :type override_context: typing.Union[dict, bpy.types.Context]
202
+ :type execution_context: typing.Union[str, int]
203
+ :type undo: bool
212
204
  """
213
205
 
214
206
  ...
215
207
 
216
208
  def clear(
217
- override_context: typing.Optional[
218
- typing.Union[typing.Dict, "bpy.types.Context"]
219
- ] = None,
220
- execution_context: typing.Optional[typing.Union[str, int]] = None,
221
- undo: typing.Optional[bool] = None,
222
- *,
223
- set_fake_user: typing.Optional[typing.Union[bool, typing.Any]] = False,
209
+ override_context: typing.Union[dict, bpy.types.Context] = None,
210
+ execution_context: typing.Union[str, int] = None,
211
+ undo: bool = None,
212
+ set_fake_user: typing.Union[bool, typing.Any] = False,
224
213
  ):
225
214
  """Delete all asset metadata and turn the selected asset data-blocks back into normal data-blocks
226
215
 
227
- :type override_context: typing.Optional[typing.Union[typing.Dict, 'bpy.types.Context']]
228
- :type execution_context: typing.Optional[typing.Union[str, int]]
229
- :type undo: typing.Optional[bool]
216
+ :type override_context: typing.Union[dict, bpy.types.Context]
217
+ :type execution_context: typing.Union[str, int]
218
+ :type undo: bool
230
219
  :param set_fake_user: Set Fake User, Ensure the data-block is saved, even when it is no longer marked as asset
231
- :type set_fake_user: typing.Optional[typing.Union[bool, typing.Any]]
220
+ :type set_fake_user: typing.Union[bool, typing.Any]
232
221
  """
233
222
 
234
223
  ...
235
224
 
236
225
  def clear_single(
237
- override_context: typing.Optional[
238
- typing.Union[typing.Dict, "bpy.types.Context"]
239
- ] = None,
240
- execution_context: typing.Optional[typing.Union[str, int]] = None,
241
- undo: typing.Optional[bool] = None,
242
- *,
243
- set_fake_user: typing.Optional[typing.Union[bool, typing.Any]] = False,
226
+ override_context: typing.Union[dict, bpy.types.Context] = None,
227
+ execution_context: typing.Union[str, int] = None,
228
+ undo: bool = None,
229
+ set_fake_user: typing.Union[bool, typing.Any] = False,
244
230
  ):
245
231
  """Delete all asset metadata and turn the asset data-block back into a normal data-block
246
232
 
247
- :type override_context: typing.Optional[typing.Union[typing.Dict, 'bpy.types.Context']]
248
- :type execution_context: typing.Optional[typing.Union[str, int]]
249
- :type undo: typing.Optional[bool]
233
+ :type override_context: typing.Union[dict, bpy.types.Context]
234
+ :type execution_context: typing.Union[str, int]
235
+ :type undo: bool
250
236
  :param set_fake_user: Set Fake User, Ensure the data-block is saved, even when it is no longer marked as asset
251
- :type set_fake_user: typing.Optional[typing.Union[bool, typing.Any]]
237
+ :type set_fake_user: typing.Union[bool, typing.Any]
252
238
  """
253
239
 
254
240
  ...
255
241
 
256
242
  def library_refresh(
257
- override_context: typing.Optional[
258
- typing.Union[typing.Dict, "bpy.types.Context"]
259
- ] = None,
260
- execution_context: typing.Optional[typing.Union[str, int]] = None,
261
- undo: typing.Optional[bool] = None,
243
+ override_context: typing.Union[dict, bpy.types.Context] = None,
244
+ execution_context: typing.Union[str, int] = None,
245
+ undo: bool = None,
262
246
  ):
263
247
  """Reread assets and asset catalogs from the asset library on disk
264
248
 
265
- :type override_context: typing.Optional[typing.Union[typing.Dict, 'bpy.types.Context']]
266
- :type execution_context: typing.Optional[typing.Union[str, int]]
267
- :type undo: typing.Optional[bool]
249
+ :type override_context: typing.Union[dict, bpy.types.Context]
250
+ :type execution_context: typing.Union[str, int]
251
+ :type undo: bool
268
252
  """
269
253
 
270
254
  ...
271
255
 
272
256
  def mark(
273
- override_context: typing.Optional[
274
- typing.Union[typing.Dict, "bpy.types.Context"]
275
- ] = None,
276
- execution_context: typing.Optional[typing.Union[str, int]] = None,
277
- undo: typing.Optional[bool] = None,
257
+ override_context: typing.Union[dict, bpy.types.Context] = None,
258
+ execution_context: typing.Union[str, int] = None,
259
+ undo: bool = None,
278
260
  ):
279
261
  """Enable easier reuse of selected data-blocks through the Asset Browser, with the help of customizable metadata (like previews, descriptions and tags)
280
262
 
281
- :type override_context: typing.Optional[typing.Union[typing.Dict, 'bpy.types.Context']]
282
- :type execution_context: typing.Optional[typing.Union[str, int]]
283
- :type undo: typing.Optional[bool]
263
+ :type override_context: typing.Union[dict, bpy.types.Context]
264
+ :type execution_context: typing.Union[str, int]
265
+ :type undo: bool
284
266
  """
285
267
 
286
268
  ...
287
269
 
288
270
  def mark_single(
289
- override_context: typing.Optional[
290
- typing.Union[typing.Dict, "bpy.types.Context"]
291
- ] = None,
292
- execution_context: typing.Optional[typing.Union[str, int]] = None,
293
- undo: typing.Optional[bool] = None,
271
+ override_context: typing.Union[dict, bpy.types.Context] = None,
272
+ execution_context: typing.Union[str, int] = None,
273
+ undo: bool = None,
294
274
  ):
295
275
  """Enable easier reuse of a data-block through the Asset Browser, with the help of customizable metadata (like previews, descriptions and tags)
296
276
 
297
- :type override_context: typing.Optional[typing.Union[typing.Dict, 'bpy.types.Context']]
298
- :type execution_context: typing.Optional[typing.Union[str, int]]
299
- :type undo: typing.Optional[bool]
277
+ :type override_context: typing.Union[dict, bpy.types.Context]
278
+ :type execution_context: typing.Union[str, int]
279
+ :type undo: bool
300
280
  """
301
281
 
302
282
  ...
303
283
 
304
284
  def open_containing_blend_file(
305
- override_context: typing.Optional[
306
- typing.Union[typing.Dict, "bpy.types.Context"]
307
- ] = None,
308
- execution_context: typing.Optional[typing.Union[str, int]] = None,
309
- undo: typing.Optional[bool] = None,
285
+ override_context: typing.Union[dict, bpy.types.Context] = None,
286
+ execution_context: typing.Union[str, int] = None,
287
+ undo: bool = None,
310
288
  ):
311
- """Open the blend file that contains the active asset :File: `startup/bl_operators/assets.py\:97 <https://projects.blender.org/blender/blender/src/branch/main/scripts/startup/bl_operators/assets.py#L97>`__
289
+ """Open the blend file that contains the active asset
312
290
 
313
- :type override_context: typing.Optional[typing.Union[typing.Dict, 'bpy.types.Context']]
314
- :type execution_context: typing.Optional[typing.Union[str, int]]
315
- :type undo: typing.Optional[bool]
291
+ :type override_context: typing.Union[dict, bpy.types.Context]
292
+ :type execution_context: typing.Union[str, int]
293
+ :type undo: bool
316
294
  """
317
295
 
318
296
  ...
319
297
 
320
298
  def tag_add(
321
- override_context: typing.Optional[
322
- typing.Union[typing.Dict, "bpy.types.Context"]
323
- ] = None,
324
- execution_context: typing.Optional[typing.Union[str, int]] = None,
325
- undo: typing.Optional[bool] = None,
299
+ override_context: typing.Union[dict, bpy.types.Context] = None,
300
+ execution_context: typing.Union[str, int] = None,
301
+ undo: bool = None,
326
302
  ):
327
- """Add a new keyword tag to the active asset :File: `startup/bl_operators/assets.py\:42 <https://projects.blender.org/blender/blender/src/branch/main/scripts/startup/bl_operators/assets.py#L42>`__
303
+ """Add a new keyword tag to the active asset
328
304
 
329
- :type override_context: typing.Optional[typing.Union[typing.Dict, 'bpy.types.Context']]
330
- :type execution_context: typing.Optional[typing.Union[str, int]]
331
- :type undo: typing.Optional[bool]
305
+ :type override_context: typing.Union[dict, bpy.types.Context]
306
+ :type execution_context: typing.Union[str, int]
307
+ :type undo: bool
332
308
  """
333
309
 
334
310
  ...
335
311
 
336
312
  def tag_remove(
337
- override_context: typing.Optional[
338
- typing.Union[typing.Dict, "bpy.types.Context"]
339
- ] = None,
340
- execution_context: typing.Optional[typing.Union[str, int]] = None,
341
- undo: typing.Optional[bool] = None,
313
+ override_context: typing.Union[dict, bpy.types.Context] = None,
314
+ execution_context: typing.Union[str, int] = None,
315
+ undo: bool = None,
342
316
  ):
343
- """Remove an existing keyword tag from the active asset :File: `startup/bl_operators/assets.py\:65 <https://projects.blender.org/blender/blender/src/branch/main/scripts/startup/bl_operators/assets.py#L65>`__
317
+ """Remove an existing keyword tag from the active asset
344
318
 
345
- :type override_context: typing.Optional[typing.Union[typing.Dict, 'bpy.types.Context']]
346
- :type execution_context: typing.Optional[typing.Union[str, int]]
347
- :type undo: typing.Optional[bool]
319
+ :type override_context: typing.Union[dict, bpy.types.Context]
320
+ :type execution_context: typing.Union[str, int]
321
+ :type undo: bool
348
322
  """
349
323
 
350
324
  ...