fake-bpy-module 20250629__py3-none-any.whl → 20250827__py3-none-any.whl

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

Potentially problematic release.


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

Files changed (246) hide show
  1. _bpy_internal/__init__.pyi +1 -0
  2. _bpy_internal/assets/__init__.pyi +5 -0
  3. _bpy_internal/assets/remote_library_listing/__init__.pyi +5 -0
  4. _bpy_internal/assets/remote_library_listing/blender_asset_library_openapi/__init__.pyi +13 -0
  5. _bpy_internal/extensions/wheel_manager/__init__.pyi +1 -1
  6. _bpy_internal/grease_pencil/stroke/__init__.pyi +2 -2
  7. _bpy_types/__init__.pyi +1594 -0
  8. aud/__init__.pyi +84 -31
  9. bl_i18n_utils/settings/__init__.pyi +1 -1
  10. bl_i18n_utils/utils/__init__.pyi +4 -4
  11. bl_math/__init__.pyi +1 -1
  12. bl_operators/add_mesh_torus/__init__.pyi +2 -1
  13. bl_operators/anim/__init__.pyi +15 -14
  14. bl_operators/assets/__init__.pyi +4 -3
  15. bl_operators/bone_selection_sets/__init__.pyi +15 -14
  16. bl_operators/clip/__init__.pyi +12 -11
  17. bl_operators/connect_to_output/__init__.pyi +2 -1
  18. bl_operators/console/__init__.pyi +6 -5
  19. bl_operators/constraint/__init__.pyi +6 -5
  20. bl_operators/file/__init__.pyi +6 -5
  21. bl_operators/freestyle/__init__.pyi +5 -4
  22. bl_operators/geometry_nodes/__init__.pyi +5 -4
  23. bl_operators/grease_pencil/__init__.pyi +2 -1
  24. bl_operators/image/__init__.pyi +6 -5
  25. bl_operators/image_as_planes/__init__.pyi +3 -2
  26. bl_operators/mesh/__init__.pyi +4 -3
  27. bl_operators/node/__init__.pyi +18 -17
  28. bl_operators/object/__init__.pyi +17 -16
  29. bl_operators/object_align/__init__.pyi +2 -1
  30. bl_operators/object_quick_effects/__init__.pyi +5 -4
  31. bl_operators/object_randomize_transform/__init__.pyi +2 -1
  32. bl_operators/presets/__init__.pyi +26 -25
  33. bl_operators/rigidbody/__init__.pyi +4 -3
  34. bl_operators/screen_play_rendered_anim/__init__.pyi +2 -1
  35. bl_operators/sequencer/__init__.pyi +12 -11
  36. bl_operators/spreadsheet/__init__.pyi +2 -1
  37. bl_operators/userpref/__init__.pyi +26 -25
  38. bl_operators/uvcalc_follow_active/__init__.pyi +2 -1
  39. bl_operators/uvcalc_lightmap/__init__.pyi +3 -2
  40. bl_operators/uvcalc_transform/__init__.pyi +5 -4
  41. bl_operators/vertexpaint_dirt/__init__.pyi +2 -1
  42. bl_operators/view3d/__init__.pyi +9 -8
  43. bl_operators/wm/__init__.pyi +48 -47
  44. bl_operators/world/__init__.pyi +3 -2
  45. bl_ui/__init__.pyi +4 -3
  46. bl_ui/anim/__init__.pyi +2 -1
  47. bl_ui/asset_shelf/__init__.pyi +2 -1
  48. bl_ui/generic_ui_list/__init__.pyi +6 -5
  49. bl_ui/node_add_menu/__init__.pyi +3 -2
  50. bl_ui/node_add_menu_compositor/__init__.pyi +19 -18
  51. bl_ui/node_add_menu_geometry/__init__.pyi +133 -54
  52. bl_ui/node_add_menu_shader/__init__.pyi +11 -10
  53. bl_ui/node_add_menu_texture/__init__.pyi +10 -9
  54. bl_ui/properties_collection/__init__.pyi +9 -8
  55. bl_ui/properties_constraint/__init__.pyi +78 -77
  56. bl_ui/properties_data_armature/__init__.pyi +22 -21
  57. bl_ui/properties_data_bone/__init__.pyi +12 -11
  58. bl_ui/properties_data_camera/__init__.pyi +18 -17
  59. bl_ui/properties_data_curve/__init__.pyi +18 -17
  60. bl_ui/properties_data_curves/__init__.pyi +11 -10
  61. bl_ui/properties_data_empty/__init__.pyi +3 -2
  62. bl_ui/properties_data_grease_pencil/__init__.pyi +23 -22
  63. bl_ui/properties_data_lattice/__init__.pyi +7 -6
  64. bl_ui/properties_data_light/__init__.pyi +13 -12
  65. bl_ui/properties_data_lightprobe/__init__.pyi +16 -15
  66. bl_ui/properties_data_mesh/__init__.pyi +48 -22
  67. bl_ui/properties_data_metaball/__init__.pyi +9 -8
  68. bl_ui/properties_data_modifier/__init__.pyi +10 -9
  69. bl_ui/properties_data_pointcloud/__init__.pyi +8 -7
  70. bl_ui/properties_data_shaderfx/__init__.pyi +2 -1
  71. bl_ui/properties_data_speaker/__init__.pyi +9 -8
  72. bl_ui/properties_data_volume/__init__.pyi +12 -11
  73. bl_ui/properties_freestyle/__init__.pyi +27 -26
  74. bl_ui/properties_grease_pencil_common/__init__.pyi +11 -10
  75. bl_ui/properties_mask_common/__init__.pyi +8 -7
  76. bl_ui/properties_material/__init__.pyi +19 -18
  77. bl_ui/properties_material_gpencil/__init__.pyi +14 -13
  78. bl_ui/properties_object/__init__.pyi +24 -23
  79. bl_ui/properties_output/__init__.pyi +21 -20
  80. bl_ui/properties_paint_common/__init__.pyi +8 -4
  81. bl_ui/properties_particle/__init__.pyi +58 -55
  82. bl_ui/properties_physics_cloth/__init__.pyi +15 -14
  83. bl_ui/properties_physics_common/__init__.pyi +2 -1
  84. bl_ui/properties_physics_dynamicpaint/__init__.pyi +23 -22
  85. bl_ui/properties_physics_field/__init__.pyi +11 -10
  86. bl_ui/properties_physics_fluid/__init__.pyi +29 -28
  87. bl_ui/properties_physics_geometry_nodes/__init__.pyi +2 -1
  88. bl_ui/properties_physics_rigidbody/__init__.pyi +9 -8
  89. bl_ui/properties_physics_rigidbody_constraint/__init__.pyi +14 -13
  90. bl_ui/properties_physics_softbody/__init__.pyi +16 -15
  91. bl_ui/properties_render/__init__.pyi +44 -74
  92. bl_ui/properties_scene/__init__.pyi +48 -18
  93. bl_ui/properties_texture/__init__.pyi +30 -29
  94. bl_ui/properties_view_layer/__init__.pyi +52 -14
  95. bl_ui/properties_workspace/__init__.pyi +6 -5
  96. bl_ui/properties_world/__init__.pyi +14 -13
  97. bl_ui/space_clip/__init__.pyi +76 -73
  98. bl_ui/space_console/__init__.pyi +7 -6
  99. bl_ui/space_dopesheet/__init__.pyi +32 -31
  100. bl_ui/space_filebrowser/__init__.pyi +33 -30
  101. bl_ui/space_graph/__init__.pyi +24 -23
  102. bl_ui/space_image/__init__.pyi +88 -72
  103. bl_ui/space_info/__init__.pyi +7 -6
  104. bl_ui/space_nla/__init__.pyi +22 -19
  105. bl_ui/space_node/__init__.pyi +66 -31
  106. bl_ui/space_outliner/__init__.pyi +16 -15
  107. bl_ui/space_properties/__init__.pyi +5 -4
  108. bl_ui/space_sequencer/__init__.pyi +131 -91
  109. bl_ui/space_spreadsheet/__init__.pyi +4 -3
  110. bl_ui/space_statusbar/__init__.pyi +2 -1
  111. bl_ui/space_text/__init__.pyi +17 -16
  112. bl_ui/space_time/__init__.pyi +7 -6
  113. bl_ui/space_toolsystem_common/__init__.pyi +2 -2
  114. bl_ui/space_toolsystem_toolbar/__init__.pyi +23 -5
  115. bl_ui/space_topbar/__init__.pyi +28 -27
  116. bl_ui/space_userpref/__init__.pyi +103 -92
  117. bl_ui/space_view3d/__init__.pyi +268 -266
  118. bl_ui/space_view3d_toolbar/__init__.pyi +106 -99
  119. blf/__init__.pyi +3 -5
  120. bmesh/__init__.pyi +2 -2
  121. bmesh/geometry/__init__.pyi +1 -1
  122. bmesh/ops/__init__.pyi +29 -14
  123. bmesh/types/__init__.pyi +41 -46
  124. bmesh/utils/__init__.pyi +1 -0
  125. bpy/__init__.pyi +1 -1
  126. bpy/app/__init__.pyi +34 -37
  127. bpy/app/handlers/__init__.pyi +19 -19
  128. bpy/app/timers/__init__.pyi +2 -1
  129. bpy/app/translations/__init__.pyi +8 -8
  130. bpy/msgbus/__init__.pyi +3 -2
  131. bpy/ops/action/__init__.pyi +58 -20
  132. bpy/ops/anim/__init__.pyi +115 -31
  133. bpy/ops/armature/__init__.pyi +59 -19
  134. bpy/ops/asset/__init__.pyi +35 -11
  135. bpy/ops/boid/__init__.pyi +21 -7
  136. bpy/ops/brush/__init__.pyi +10 -4
  137. bpy/ops/buttons/__init__.pyi +12 -4
  138. bpy/ops/cachefile/__init__.pyi +6 -2
  139. bpy/ops/clip/__init__.pyi +132 -46
  140. bpy/ops/collection/__init__.pyi +23 -4
  141. bpy/ops/console/__init__.pyi +30 -10
  142. bpy/ops/constraint/__init__.pyi +12 -6
  143. bpy/ops/curve/__init__.pyi +72 -24
  144. bpy/ops/curves/__init__.pyi +47 -15
  145. bpy/ops/cycles/__init__.pyi +4 -2
  146. bpy/ops/dpaint/__init__.pyi +11 -3
  147. bpy/ops/ed/__init__.pyi +34 -10
  148. bpy/ops/export_scene/__init__.pyi +15 -15
  149. bpy/ops/extensions/__init__.pyi +45 -15
  150. bpy/ops/file/__init__.pyi +81 -30
  151. bpy/ops/fluid/__init__.pyi +39 -13
  152. bpy/ops/font/__init__.pyi +30 -10
  153. bpy/ops/geometry/__init__.pyi +9 -3
  154. bpy/ops/gizmogroup/__init__.pyi +3 -1
  155. bpy/ops/gpencil/__init__.pyi +20 -8
  156. bpy/ops/graph/__init__.pyi +67 -29
  157. bpy/ops/grease_pencil/__init__.pyi +148 -38
  158. bpy/ops/image/__init__.pyi +68 -58
  159. bpy/ops/import_anim/__init__.pyi +2 -2
  160. bpy/ops/import_curve/__init__.pyi +3 -0
  161. bpy/ops/import_scene/__init__.pyi +15 -2
  162. bpy/ops/info/__init__.pyi +12 -4
  163. bpy/ops/lattice/__init__.pyi +9 -3
  164. bpy/ops/marker/__init__.pyi +8 -2
  165. bpy/ops/mask/__init__.pyi +53 -19
  166. bpy/ops/material/__init__.pyi +15 -3
  167. bpy/ops/mball/__init__.pyi +3 -1
  168. bpy/ops/mesh/__init__.pyi +116 -45
  169. bpy/ops/nla/__init__.pyi +67 -25
  170. bpy/ops/node/__init__.pyi +285 -119
  171. bpy/ops/object/__init__.pyi +278 -116
  172. bpy/ops/outliner/__init__.pyi +145 -49
  173. bpy/ops/paint/__init__.pyi +65 -37
  174. bpy/ops/paintcurve/__init__.pyi +16 -4
  175. bpy/ops/palette/__init__.pyi +11 -3
  176. bpy/ops/particle/__init__.pyi +66 -24
  177. bpy/ops/pointcloud/__init__.pyi +9 -3
  178. bpy/ops/pose/__init__.pyi +80 -28
  179. bpy/ops/poselib/__init__.pyi +19 -7
  180. bpy/ops/preferences/__init__.pyi +29 -11
  181. bpy/ops/ptcache/__init__.pyi +17 -5
  182. bpy/ops/render/__init__.pyi +10 -4
  183. bpy/ops/rigidbody/__init__.pyi +19 -7
  184. bpy/ops/scene/__init__.pyi +93 -22
  185. bpy/ops/screen/__init__.pyi +58 -20
  186. bpy/ops/script/__init__.pyi +3 -1
  187. bpy/ops/sculpt/__init__.pyi +30 -14
  188. bpy/ops/sculpt_curves/__init__.pyi +4 -2
  189. bpy/ops/sequencer/__init__.pyi +262 -125
  190. bpy/ops/sound/__init__.pyi +13 -5
  191. bpy/ops/spreadsheet/__init__.pyi +15 -5
  192. bpy/ops/text/__init__.pyi +85 -25
  193. bpy/ops/texture/__init__.pyi +11 -3
  194. bpy/ops/transform/__init__.pyi +7 -3
  195. bpy/ops/ui/__init__.pyi +98 -53
  196. bpy/ops/uv/__init__.pyi +43 -17
  197. bpy/ops/view2d/__init__.pyi +13 -3
  198. bpy/ops/view3d/__init__.pyi +116 -38
  199. bpy/ops/wm/__init__.pyi +144 -86
  200. bpy/ops/workspace/__init__.pyi +31 -6
  201. bpy/ops/world/__init__.pyi +9 -3
  202. bpy/path/__init__.pyi +1 -1
  203. bpy/props/__init__.pyi +31 -31
  204. bpy/stub_internal/rna_enums/__init__.pyi +40 -25
  205. bpy/types/__init__.pyi +58124 -41707
  206. bpy/utils/__init__.pyi +8 -8
  207. bpy/utils/previews/__init__.pyi +2 -2
  208. bpy/utils/units/__init__.pyi +5 -3
  209. bpy_extras/anim_utils/__init__.pyi +1 -1
  210. bpy_extras/id_map_utils/__init__.pyi +1 -1
  211. bpy_extras/image_utils/__init__.pyi +2 -2
  212. bpy_extras/io_utils/__init__.pyi +5 -5
  213. bpy_extras/keyconfig_utils/__init__.pyi +1 -1
  214. bpy_extras/node_shader_utils/__init__.pyi +1 -1
  215. bpy_extras/object_utils/__init__.pyi +1 -1
  216. bpy_extras/wm_utils/progress_report/__init__.pyi +1 -1
  217. {fake_bpy_module-20250629.dist-info → fake_bpy_module-20250827.dist-info}/METADATA +1 -1
  218. fake_bpy_module-20250827.dist-info/RECORD +370 -0
  219. {fake_bpy_module-20250629.dist-info → fake_bpy_module-20250827.dist-info}/top_level.txt +1 -1
  220. freestyle/chainingiterators/__init__.pyi +5 -5
  221. freestyle/predicates/__init__.pyi +2 -2
  222. freestyle/shaders/__init__.pyi +16 -17
  223. freestyle/types/__init__.pyi +25 -27
  224. freestyle/utils/__init__.pyi +5 -5
  225. gpu/platform/__init__.pyi +2 -2
  226. gpu/shader/__init__.pyi +3 -3
  227. gpu/state/__init__.pyi +1 -1
  228. gpu/texture/__init__.pyi +3 -3
  229. gpu/types/__init__.pyi +25 -14
  230. gpu_extras/batch/__init__.pyi +1 -1
  231. idprop/types/__init__.pyi +2 -2
  232. imbuf/__init__.pyi +1 -1
  233. imbuf/types/__init__.pyi +12 -6
  234. keyingsets_builtins/__init__.pyi +23 -22
  235. mathutils/__init__.pyi +157 -61
  236. mathutils/bvhtree/__init__.pyi +20 -6
  237. mathutils/geometry/__init__.pyi +54 -12
  238. mathutils/interpolate/__init__.pyi +4 -2
  239. mathutils/kdtree/__init__.pyi +1 -0
  240. mathutils/noise/__init__.pyi +61 -44
  241. rna_info/__init__.pyi +4 -1
  242. rna_prop_ui/__init__.pyi +1 -1
  243. bpy_types/__init__.pyi +0 -30
  244. fake_bpy_module-20250629.dist-info/RECORD +0 -367
  245. {bpy_types → _bpy_types}/py.typed +0 -0
  246. {fake_bpy_module-20250629.dist-info → fake_bpy_module-20250827.dist-info}/WHEEL +0 -0
bpy/app/__init__.pyi CHANGED
@@ -22,23 +22,24 @@ from . import icons as icons
22
22
  from . import timers as timers
23
23
  from . import translations as translations
24
24
 
25
- def help_text(all: bool | None = False) -> None:
25
+ def help_text(*, all: bool | None = False) -> None:
26
26
  """Return the help text as a string.
27
27
 
28
- :param all: Return all arguments, even those which aren't available for the current platform.
28
+ :param all: Return all arguments, even those which arent available for the current platform.
29
29
  :type all: bool | None
30
30
  """
31
31
 
32
- def is_job_running(job_type: bpy.stub_internal.rna_enums.WmJobTypeItems) -> None:
32
+ def is_job_running(job_type: bpy.stub_internal.rna_enums.WmJobTypeItems) -> bool:
33
33
  """Check whether a job of the given type is running.
34
34
 
35
35
  :param job_type: job type in `rna_enum_wm_job_type_items`.
36
36
  :type job_type: bpy.stub_internal.rna_enums.WmJobTypeItems
37
37
  :return: Whether a job of the given type is currently running.
38
+ :rtype: bool
38
39
  """
39
40
 
40
41
  alembic: typing.Any
41
- """ Constant value bpy.app.alembic(supported=True, version=(1, 8, 3), version_string=' 1, 8, 3')
42
+ """ Constant value bpy.app.alembic(supported=True, version=(1, 8, 3), version_string= 1, 8, 3)
42
43
  """
43
44
 
44
45
  autoexec_fail: typing.Any
@@ -58,7 +59,7 @@ background: typing.Any
58
59
  """
59
60
 
60
61
  binary_path: str
61
- """ The location of Blender's executable, useful for utilities that open new instances. Read-only unless Blender is built as a Python module - in this case the value is an empty string which script authors may point to a Blender binary.
62
+ """ The location of Blenders executable, useful for utilities that open new instances. Read-only unless Blender is built as a Python module - in this case the value is an empty string which script authors may point to a Blender binary.
62
63
  """
63
64
 
64
65
  build_branch: typing.Any
@@ -118,71 +119,67 @@ build_type: typing.Any
118
119
  """
119
120
 
120
121
  debug: typing.Any
121
- """ Boolean, for debug info (started with --debug / --debug-* matching this attribute name)
122
+ """ Boolean, for debug info (started with --debug / --debug-* matching this attribute name).
122
123
  """
123
124
 
124
125
  debug_depsgraph: typing.Any
125
- """ Boolean, for debug info (started with --debug / --debug-* matching this attribute name)
126
+ """ Boolean, for debug info (started with --debug / --debug-* matching this attribute name).
126
127
  """
127
128
 
128
129
  debug_depsgraph_build: typing.Any
129
- """ Boolean, for debug info (started with --debug / --debug-* matching this attribute name)
130
+ """ Boolean, for debug info (started with --debug / --debug-* matching this attribute name).
130
131
  """
131
132
 
132
133
  debug_depsgraph_eval: typing.Any
133
- """ Boolean, for debug info (started with --debug / --debug-* matching this attribute name)
134
+ """ Boolean, for debug info (started with --debug / --debug-* matching this attribute name).
134
135
  """
135
136
 
136
137
  debug_depsgraph_pretty: typing.Any
137
- """ Boolean, for debug info (started with --debug / --debug-* matching this attribute name)
138
+ """ Boolean, for debug info (started with --debug / --debug-* matching this attribute name).
138
139
  """
139
140
 
140
141
  debug_depsgraph_tag: typing.Any
141
- """ Boolean, for debug info (started with --debug / --debug-* matching this attribute name)
142
+ """ Boolean, for debug info (started with --debug / --debug-* matching this attribute name).
142
143
  """
143
144
 
144
145
  debug_depsgraph_time: typing.Any
145
- """ Boolean, for debug info (started with --debug / --debug-* matching this attribute name)
146
+ """ Boolean, for debug info (started with --debug / --debug-* matching this attribute name).
146
147
  """
147
148
 
148
149
  debug_events: typing.Any
149
- """ Boolean, for debug info (started with --debug / --debug-* matching this attribute name)
150
- """
151
-
152
- debug_ffmpeg: typing.Any
153
- """ Boolean, for debug info (started with --debug / --debug-* matching this attribute name)
150
+ """ Boolean, for debug info (started with --debug / --debug-* matching this attribute name).
154
151
  """
155
152
 
156
153
  debug_freestyle: typing.Any
157
- """ Boolean, for debug info (started with --debug / --debug-* matching this attribute name)
154
+ """ Boolean, for debug info (started with --debug / --debug-* matching this attribute name).
158
155
  """
159
156
 
160
157
  debug_handlers: typing.Any
161
- """ Boolean, for debug info (started with --debug / --debug-* matching this attribute name)
158
+ """ Boolean, for debug info (started with --debug / --debug-* matching this attribute name).
162
159
  """
163
160
 
164
161
  debug_io: typing.Any
165
- """ Boolean, for debug info (started with --debug / --debug-* matching this attribute name)
162
+ """ Boolean, for debug info (started with --debug / --debug-* matching this attribute name).
166
163
  """
167
164
 
168
165
  debug_python: typing.Any
169
- """ Boolean, for debug info (started with --debug / --debug-* matching this attribute name)
166
+ """ Boolean, for debug info (started with --debug / --debug-* matching this attribute name).
170
167
  """
171
168
 
172
169
  debug_simdata: typing.Any
173
- """ Boolean, for debug info (started with --debug / --debug-* matching this attribute name)
170
+ """ Boolean, for debug info (started with --debug / --debug-* matching this attribute name).
174
171
  """
175
172
 
176
173
  debug_value: typing.Any
177
- """ Short, number which can be set to non-zero values for testing purposes
174
+ """ Short, number which can be set to non-zero values for testing purposes.
178
175
  """
179
176
 
180
177
  debug_wm: typing.Any
181
- """ Boolean, for debug info (started with --debug / --debug-* matching this attribute name)
178
+ """ Boolean, for debug info (started with --debug / --debug-* matching this attribute name).
182
179
  """
183
180
 
184
181
  driver_namespace: typing.Any
185
- """ Dictionary for drivers namespace, editable in-place, reset on file load (read-only)
182
+ """ Dictionary for drivers namespace, editable in-place, reset on file load (read-only).
186
183
  """
187
184
 
188
185
  factory_startup: typing.Any
@@ -190,7 +187,7 @@ factory_startup: typing.Any
190
187
  """
191
188
 
192
189
  ffmpeg: typing.Any
193
- """ Constant value bpy.app.ffmpeg(supported=True, avcodec_version=(61, 19, 101), avcodec_version_string='61, 19, 101', avdevice_version=(61, 3, 100), avdevice_version_string='61, 3, 100', avformat_version=(61, 7, 100), avformat_version_string='61, 7, 100', avutil_version=(59, 39, 100), avutil_version_string='59, 39, 100', swscale_version=(8, 3, 100), swscale_version_string=' 8, 3, 100')
190
+ """ Constant value bpy.app.ffmpeg(supported=True, avcodec_version=(61, 19, 101), avcodec_version_string=61, 19, 101, avdevice_version=(61, 3, 100), avdevice_version_string=61, 3, 100, avformat_version=(61, 7, 100), avformat_version_string=61, 7, 100, avutil_version=(59, 39, 100), avutil_version_string=59, 39, 100, swscale_version=(8, 3, 100), swscale_version_string= 8, 3, 100)
194
191
  """
195
192
 
196
193
  module: typing.Any
@@ -198,27 +195,27 @@ module: typing.Any
198
195
  """
199
196
 
200
197
  ocio: typing.Any
201
- """ Constant value bpy.app.ocio(supported=True, version=(2, 4, 1), version_string=' 2, 4, 1')
198
+ """ Constant value bpy.app.ocio(supported=True, version=(2, 4, 1), version_string= 2, 4, 1)
202
199
  """
203
200
 
204
201
  oiio: typing.Any
205
- """ Constant value bpy.app.oiio(supported=True, version=(3, 0, 6), version_string=' 3, 0, 6')
202
+ """ Constant value bpy.app.oiio(supported=True, version=(3, 0, 6), version_string= 3, 0, 6)
206
203
  """
207
204
 
208
205
  online_access: typing.Any
209
- """ Boolean, true when internet access is allowed by Blender & 3rd party scripts (read-only)
206
+ """ Boolean, true when internet access is allowed by Blender & 3rd party scripts (read-only).
210
207
  """
211
208
 
212
209
  online_access_override: typing.Any
213
- """ Boolean, true when internet access preference is overridden by the command line (read-only)
210
+ """ Boolean, true when internet access preference is overridden by the command line (read-only).
214
211
  """
215
212
 
216
213
  opensubdiv: typing.Any
217
- """ Constant value bpy.app.opensubdiv(supported=True, version=(3, 6, 0), version_string=' 3, 6, 0')
214
+ """ Constant value bpy.app.opensubdiv(supported=True, version=(3, 6, 0), version_string= 3, 6, 0)
218
215
  """
219
216
 
220
217
  openvdb: typing.Any
221
- """ Constant value bpy.app.openvdb(supported=True, version=(12, 0, 0), version_string='12, 0, 0')
218
+ """ Constant value bpy.app.openvdb(supported=True, version=(12, 0, 0), version_string=12, 0, 0)
222
219
  """
223
220
 
224
221
  portable: typing.Any
@@ -230,23 +227,23 @@ python_args: typing.Any
230
227
  """
231
228
 
232
229
  render_icon_size: typing.Any
233
- """ Reference size for icon/preview renders (read-only)
230
+ """ Reference size for icon/preview renders (read-only).
234
231
  """
235
232
 
236
233
  render_preview_size: typing.Any
237
- """ Reference size for icon/preview renders (read-only)
234
+ """ Reference size for icon/preview renders (read-only).
238
235
  """
239
236
 
240
237
  sdl: typing.Any
241
- """ Constant value bpy.app.sdl(supported=False, version=(0, 0, 0), version_string='Unknown')
238
+ """ Constant value bpy.app.sdl(supported=False, version=(0, 0, 0), version_string=Unknown)
242
239
  """
243
240
 
244
241
  tempdir: typing.Any
245
- """ String, the temp directory used by blender (read-only)
242
+ """ String, the temp directory used by blender (read-only).
246
243
  """
247
244
 
248
245
  usd: typing.Any
249
- """ Constant value bpy.app.usd(supported=True, version=(0, 25, 2), version_string=' 0, 25, 2')
246
+ """ Constant value bpy.app.usd(supported=True, version=(0, 25, 2), version_string= 0, 25, 2)
250
247
  """
251
248
 
252
249
  use_event_simulate: typing.Any
@@ -46,57 +46,57 @@ import numpy.typing as npt
46
46
  import bpy.types
47
47
 
48
48
  animation_playback_post: list[collections.abc.Callable[[bpy.types.Scene], None]]
49
- """ on ending animation playback
49
+ """ on ending animation playback. Accepts two arguments: The scene data-block and the dependency graph being updated
50
50
  """
51
51
 
52
52
  animation_playback_pre: list[collections.abc.Callable[[bpy.types.Scene], None]]
53
- """ on starting animation playback
53
+ """ on starting animation playback. Accepts two arguments: The scene data-block and the dependency graph being updated
54
54
  """
55
55
 
56
56
  annotation_post: list[collections.abc.Callable[[bpy.types.Scene], None]]
57
- """ on drawing an annotation (after)
57
+ """ on drawing an annotation (after). Accepts two arguments: the annotation data-block and dependency graph
58
58
  """
59
59
 
60
60
  annotation_pre: list[collections.abc.Callable[[bpy.types.Scene], None]]
61
- """ on drawing an annotation (before)
61
+ """ on drawing an annotation (before). Accepts two arguments: the annotation data-block and dependency graph
62
62
  """
63
63
 
64
64
  blend_import_post: list[collections.abc.Callable[[bpy.types.Scene], None]]
65
- """ on linking or appending data (after), get a single BlendImportContext parameter
65
+ """ on linking or appending data (after). Accepts one argument: a BlendImportContext
66
66
  """
67
67
 
68
68
  blend_import_pre: list[collections.abc.Callable[[bpy.types.Scene], None]]
69
- """ on linking or appending data (before), get a single BlendImportContext parameter
69
+ """ on linking or appending data (before). Accepts one argument: a BlendImportContext
70
70
  """
71
71
 
72
72
  composite_cancel: list[collections.abc.Callable[[bpy.types.Scene], None]]
73
- """ on a compositing background job (cancel)
73
+ """ on a compositing background job (cancel). Accepts one argument: the scene data-block
74
74
  """
75
75
 
76
76
  composite_post: list[collections.abc.Callable[[bpy.types.Scene], None]]
77
- """ on a compositing background job (after)
77
+ """ on a compositing background job (after). Accepts one argument: the scene data-block
78
78
  """
79
79
 
80
80
  composite_pre: list[collections.abc.Callable[[bpy.types.Scene], None]]
81
- """ on a compositing background job (before)
81
+ """ on a compositing background job (before). Accepts one argument: the scene data-block
82
82
  """
83
83
 
84
84
  depsgraph_update_post: list[
85
85
  collections.abc.Callable[[bpy.types.Scene, bpy.types.Depsgraph], None]
86
86
  ]
87
- """ on depsgraph update (post)
87
+ """ on depsgraph update (post). Accepts two arguments: The scene data-block and the dependency graph being updated
88
88
  """
89
89
 
90
90
  depsgraph_update_pre: list[collections.abc.Callable[[bpy.types.Scene, None], None]]
91
- """ on depsgraph update (pre)
91
+ """ on depsgraph update (pre). Accepts two arguments: The scene data-block and the dependency graph being updated
92
92
  """
93
93
 
94
94
  frame_change_post: list[collections.abc.Callable[[bpy.types.Scene], None]]
95
- """ Called after frame change for playback and rendering, after the data has been evaluated for the new frame.
95
+ """ Called after frame change for playback and rendering, after the data has been evaluated for the new frame. Accepts two arguments: The scene data-block and the dependency graph being updated
96
96
  """
97
97
 
98
98
  frame_change_pre: list[collections.abc.Callable[[bpy.types.Scene], None]]
99
- """ Called after frame change for playback and rendering, before any data is evaluated for the new frame. This makes it possible to change data and relations (for example swap an object to another mesh) for the new frame. Note that this handler is not to be used as 'before the frame changes' event. The dependency graph is not available in this handler, as data and relations may have been altered and the dependency graph has not yet been updated for that.
99
+ """ Called after frame change for playback and rendering, before any data is evaluated for the new frame. This makes it possible to change data and relations (for example swap an object to another mesh) for the new frame. Note that this handler is not to be used as before the frame changes event. The dependency graph is not available in this handler, as data and relations may have been altered and the dependency graph has not yet been updated for that. Accepts two arguments: The scene data-block and the dependency graph being updated
100
100
  """
101
101
 
102
102
  load_factory_preferences_post: list[collections.abc.Callable[[bpy.types.Scene], None]]
@@ -120,15 +120,15 @@ load_pre: list[collections.abc.Callable[[bpy.types.Scene], None]]
120
120
  """
121
121
 
122
122
  object_bake_cancel: list[collections.abc.Callable[[bpy.types.Scene], None]]
123
- """ on canceling a bake job; will be called in the main thread
123
+ """ on canceling a bake job; will be called in the main thread. Accepts one argument: the object data-block being baked
124
124
  """
125
125
 
126
126
  object_bake_complete: list[collections.abc.Callable[[bpy.types.Scene], None]]
127
- """ on completing a bake job; will be called in the main thread
127
+ """ on completing a bake job; will be called in the main thread. Accepts one argument: the object data-block being baked
128
128
  """
129
129
 
130
130
  object_bake_pre: list[collections.abc.Callable[[bpy.types.Scene], None]]
131
- """ before starting a bake job
131
+ """ before starting a bake job. Accepts one argument: the object data-block being baked
132
132
  """
133
133
 
134
134
  persistent: typing.Any
@@ -144,15 +144,15 @@ redo_pre: list[collections.abc.Callable[[bpy.types.Scene], None]]
144
144
  """
145
145
 
146
146
  render_cancel: list[collections.abc.Callable[[bpy.types.Scene], None]]
147
- """ on canceling a render job
147
+ """ on canceling a render job. Accepts one argument: the scene data-block being rendered
148
148
  """
149
149
 
150
150
  render_complete: list[collections.abc.Callable[[bpy.types.Scene], None]]
151
- """ on completion of render job
151
+ """ on completion of render job. Accepts one argument: the scene data-block being rendered
152
152
  """
153
153
 
154
154
  render_init: list[collections.abc.Callable[[bpy.types.Scene], None]]
155
- """ on initialization of a render job
155
+ """ on initialization of a render job. Accepts one argument: the scene data-block being rendered
156
156
  """
157
157
 
158
158
  render_post: list[collections.abc.Callable[[bpy.types.Scene], None]]
@@ -37,6 +37,7 @@ def is_registered(function: collections.abc.Callable[[], float | None]) -> bool:
37
37
 
38
38
  def register(
39
39
  function: collections.abc.Callable[[], float | None],
40
+ *,
40
41
  first_interval: float | None = 0,
41
42
  persistent: bool | None = False,
42
43
  ) -> None:
@@ -50,7 +51,7 @@ def register(
50
51
  :type function: collections.abc.Callable[[], float | None]
51
52
  :param first_interval: Seconds until the callback should be called the first time.
52
53
  :type first_interval: float | None
53
- :param persistent: Don't remove timer when a new file is loaded.
54
+ :param persistent: Dont remove timer when a new file is loaded.
54
55
  :type persistent: bool | None
55
56
  """
56
57
 
@@ -79,7 +79,7 @@ def pgettext(msgid: str | None, msgctxt: None | str | None = None) -> None:
79
79
  """
80
80
 
81
81
  def pgettext_data(msgid: str | None, msgctxt: None | str | None = None) -> None:
82
- """Try to translate the given msgid (with optional msgctxt), if new data name's translation is enabled.
82
+ """Try to translate the given msgid (with optional msgctxt), if new data names translation is enabled.
83
83
 
84
84
  :param msgid: The string to translate.
85
85
  :type msgid: str | None
@@ -89,7 +89,7 @@ def pgettext_data(msgid: str | None, msgctxt: None | str | None = None) -> None:
89
89
  """
90
90
 
91
91
  def pgettext_iface(msgid: str | None, msgctxt: None | str | None = None) -> None:
92
- """Try to translate the given msgid (with optional msgctxt), if labels' translation is enabled.
92
+ """Try to translate the given msgid (with optional msgctxt), if labels translation is enabled.
93
93
 
94
94
  :param msgid: The string to translate.
95
95
  :type msgid: str | None
@@ -109,7 +109,7 @@ def pgettext_n(msgid: str | None, msgctxt: None | str | None = None) -> None:
109
109
  """
110
110
 
111
111
  def pgettext_rpt(msgid: str | None, msgctxt: None | str | None = None) -> None:
112
- """Try to translate the given msgid (with optional msgctxt), if reports' translation is enabled.
112
+ """Try to translate the given msgid (with optional msgctxt), if reports translation is enabled.
113
113
 
114
114
  :param msgid: The string to translate.
115
115
  :type msgid: str | None
@@ -119,7 +119,7 @@ def pgettext_rpt(msgid: str | None, msgctxt: None | str | None = None) -> None:
119
119
  """
120
120
 
121
121
  def pgettext_tip(msgid: str | None, msgctxt: None | str | None = None) -> None:
122
- """Try to translate the given msgid (with optional msgctxt), if tooltips' translation is enabled.
122
+ """Try to translate the given msgid (with optional msgctxt), if tooltips translation is enabled.
123
123
 
124
124
  :param msgid: The string to translate.
125
125
  :type msgid: str | None
@@ -131,7 +131,7 @@ def pgettext_tip(msgid: str | None, msgctxt: None | str | None = None) -> None:
131
131
  def register(
132
132
  module_name: str | None, translations_dict: dict[str, dict[str, str]] | None
133
133
  ) -> None:
134
- """Registers an addon's UI translations.
134
+ """Registers an addons UI translations.
135
135
 
136
136
  :param module_name: The name identifying the addon.
137
137
  :type module_name: str | None
@@ -141,18 +141,18 @@ def register(
141
141
  """
142
142
 
143
143
  def unregister(module_name: str | None) -> None:
144
- """Unregisters an addon's UI translations.
144
+ """Unregisters an addons UI translations.
145
145
 
146
146
  :param module_name: The name identifying the addon.
147
147
  :type module_name: str | None
148
148
  """
149
149
 
150
150
  contexts: typing.Any
151
- """ Constant value bpy.app.translations.contexts(default_real=None, default='*', operator_default='Operator', ui_events_keymaps='UI_Events_KeyMaps', plural='Plural', id_action='Action', id_armature='Armature', id_brush='Brush', id_cachefile='CacheFile', id_camera='Camera', id_collection='Collection', id_curves='Curves', id_curve='Curve', id_fs_linestyle='FreestyleLineStyle', id_gpencil='GPencil', id_id='ID', id_image='Image', id_lattice='Lattice', id_library='Library', id_light='Light', id_lightprobe='LightProbe', id_mask='Mask', id_material='Material', id_mesh='Mesh', id_metaball='Metaball', id_movieclip='MovieClip', id_nodetree='NodeTree', id_object='Object', id_paintcurve='PaintCurve', id_palette='Palette', id_particlesettings='ParticleSettings', id_pointcloud='PointCloud', id_scene='Scene', id_screen='Screen', id_sequence='Sequence', id_shapekey='Key', id_simulation='Simulation', id_sound='Sound', id_speaker='Speaker', id_text='Text', id_texture='Texture', id_vfont='VFont', id_volume='Volume', id_windowmanager='WindowManager', id_workspace='WorkSpace', id_world='World', editor_filebrowser='File browser', editor_python_console='Python console', editor_preferences='Preferences', editor_view3d='View3D', amount='Amount', color='Color', constraint='Constraint', modifier='Modifier', navigation='Navigation', render_layer='Render Layer', time='Time', unit='Unit')
151
+ """ Constant value bpy.app.translations.contexts(default_real=None, default=*, operator_default=Operator, ui_events_keymaps=UI_Events_KeyMaps, plural=Plural, id_action=Action, id_armature=Armature, id_brush=Brush, id_cachefile=CacheFile, id_camera=Camera, id_collection=Collection, id_curves=Curves, id_curve=Curve, id_fs_linestyle=FreestyleLineStyle, id_gpencil=GPencil, id_id=ID, id_image=Image, id_lattice=Lattice, id_library=Library, id_light=Light, id_lightprobe=LightProbe, id_mask=Mask, id_material=Material, id_mesh=Mesh, id_metaball=Metaball, id_movieclip=MovieClip, id_nodetree=NodeTree, id_object=Object, id_paintcurve=PaintCurve, id_palette=Palette, id_particlesettings=ParticleSettings, id_pointcloud=PointCloud, id_scene=Scene, id_screen=Screen, id_sequence=Sequence, id_shapekey=Key, id_simulation=Simulation, id_sound=Sound, id_speaker=Speaker, id_text=Text, id_texture=Texture, id_vfont=VFont, id_volume=Volume, id_windowmanager=WindowManager, id_workspace=WorkSpace, id_world=World, editor_filebrowser=File browser, editor_python_console=Python console, editor_preferences=Preferences, editor_view3d=View3D, amount=Amount, color=Color, constraint=Constraint, modifier=Modifier, navigation=Navigation, render_layer=Render Layer, time=Time, unit=Unit)
152
152
  """
153
153
 
154
154
  contexts_C_to_py: typing.Any
155
- """ A readonly dict mapping contexts' C-identifiers to their py-identifiers.
155
+ """ A readonly dict mapping contexts C-identifiers to their py-identifiers.
156
156
  """
157
157
 
158
158
  locale: typing.Any
bpy/msgbus/__init__.pyi CHANGED
@@ -1,6 +1,6 @@
1
1
  """
2
2
  The message bus system can be used to receive notifications when properties of
3
- Blender datablocks are changed via the data API.
3
+ Blender data-blocks are changed via the data API.
4
4
 
5
5
 
6
6
  --------------------
@@ -69,7 +69,7 @@ def publish_rna(
69
69
  key: bpy.types.Property | bpy.types.Struct | tuple[bpy.types.Struct, str] | None,
70
70
  ) -> None:
71
71
  """Notify subscribers of changes to this property
72
- (this typically doesn't need to be called explicitly since changes will automatically publish updates).
72
+ (this typically doesnt need to be called explicitly since changes will automatically publish updates).
73
73
  In some cases it may be useful to publish changes explicitly using more general keys.
74
74
 
75
75
  :param key: Represents the type of data being subscribed to
@@ -86,6 +86,7 @@ def subscribe_rna(
86
86
  owner: typing.Any | None,
87
87
  args,
88
88
  notify,
89
+ *,
89
90
  options=set(),
90
91
  ) -> None:
91
92
  """Register a message bus subscription. It will be cleared when another blend file is
@@ -7,7 +7,9 @@ import bpy.stub_internal.rna_enums
7
7
  import bpy.types
8
8
 
9
9
  def bake_keys(
10
- execution_context: int | str | None = None, undo: bool | None = None
10
+ execution_context: int | str | None = None,
11
+ undo: bool | None = None,
12
+ /,
11
13
  ) -> None:
12
14
  """Add keyframes on every frame between the selected keyframes
13
15
 
@@ -66,7 +68,11 @@ def clickselect(
66
68
  :type channel: bool | None
67
69
  """
68
70
 
69
- def copy(execution_context: int | str | None = None, undo: bool | None = None) -> None:
71
+ def copy(
72
+ execution_context: int | str | None = None,
73
+ undo: bool | None = None,
74
+ /,
75
+ ) -> None:
70
76
  """Copy selected keyframes to the internal clipboard
71
77
 
72
78
  :type execution_context: int | str | None
@@ -89,7 +95,9 @@ def delete(
89
95
  """
90
96
 
91
97
  def duplicate(
92
- execution_context: int | str | None = None, undo: bool | None = None
98
+ execution_context: int | str | None = None,
99
+ undo: bool | None = None,
100
+ /,
93
101
  ) -> None:
94
102
  """Make a copy of all selected keyframes
95
103
 
@@ -151,7 +159,7 @@ def extrapolation_type(
151
159
  Linear Extrapolation -- Straight-line slope of end segments are extended past the endpoint keyframes.
152
160
 
153
161
  MAKE_CYCLIC
154
- Make Cyclic (F-Modifier) -- Add Cycles F-Modifier if one doesn't exist already.
162
+ Make Cyclic (F-Modifier) -- Add Cycles F-Modifier if one does not exist already.
155
163
 
156
164
  CLEAR_CYCLIC
157
165
  Clear Cyclic (F-Modifier) -- Remove Cycles F-Modifier if not needed anymore.
@@ -159,7 +167,9 @@ def extrapolation_type(
159
167
  """
160
168
 
161
169
  def frame_jump(
162
- execution_context: int | str | None = None, undo: bool | None = None
170
+ execution_context: int | str | None = None,
171
+ undo: bool | None = None,
172
+ /,
163
173
  ) -> None:
164
174
  """Set the current frame to the average frame value of selected keyframes
165
175
 
@@ -229,7 +239,9 @@ def keyframe_type(
229
239
  """
230
240
 
231
241
  def layer_next(
232
- execution_context: int | str | None = None, undo: bool | None = None
242
+ execution_context: int | str | None = None,
243
+ undo: bool | None = None,
244
+ /,
233
245
  ) -> None:
234
246
  """Switch to editing action in animation layer above the current action in the NLA Stack
235
247
 
@@ -238,7 +250,9 @@ def layer_next(
238
250
  """
239
251
 
240
252
  def layer_prev(
241
- execution_context: int | str | None = None, undo: bool | None = None
253
+ execution_context: int | str | None = None,
254
+ undo: bool | None = None,
255
+ /,
242
256
  ) -> None:
243
257
  """Switch to editing action in animation layer below the current action in the NLA Stack
244
258
 
@@ -247,9 +261,11 @@ def layer_prev(
247
261
  """
248
262
 
249
263
  def markers_make_local(
250
- execution_context: int | str | None = None, undo: bool | None = None
264
+ execution_context: int | str | None = None,
265
+ undo: bool | None = None,
266
+ /,
251
267
  ) -> None:
252
- """Move selected scene markers to the active Action as local 'pose' markers
268
+ """Move selected scene markers to the active Action as local pose markers
253
269
 
254
270
  :type execution_context: int | str | None
255
271
  :type undo: bool | None
@@ -279,7 +295,11 @@ def mirror(
279
295
  :type type: typing.Literal['CFRA','XAXIS','MARKER'] | None
280
296
  """
281
297
 
282
- def new(execution_context: int | str | None = None, undo: bool | None = None) -> None:
298
+ def new(
299
+ execution_context: int | str | None = None,
300
+ undo: bool | None = None,
301
+ /,
302
+ ) -> None:
283
303
  """Create new action
284
304
 
285
305
  :type execution_context: int | str | None
@@ -308,7 +328,9 @@ def paste(
308
328
  """
309
329
 
310
330
  def previewrange_set(
311
- execution_context: int | str | None = None, undo: bool | None = None
331
+ execution_context: int | str | None = None,
332
+ undo: bool | None = None,
333
+ /,
312
334
  ) -> None:
313
335
  """Set Preview Range based on extents of selected Keyframes
314
336
 
@@ -317,7 +339,9 @@ def previewrange_set(
317
339
  """
318
340
 
319
341
  def push_down(
320
- execution_context: int | str | None = None, undo: bool | None = None
342
+ execution_context: int | str | None = None,
343
+ undo: bool | None = None,
344
+ /,
321
345
  ) -> None:
322
346
  """Push action down on to the NLA stack as a new strip
323
347
 
@@ -504,7 +528,9 @@ def select_leftright(
504
528
  """
505
529
 
506
530
  def select_less(
507
- execution_context: int | str | None = None, undo: bool | None = None
531
+ execution_context: int | str | None = None,
532
+ undo: bool | None = None,
533
+ /,
508
534
  ) -> None:
509
535
  """Deselect keyframes on ends of selection islands
510
536
 
@@ -513,7 +539,9 @@ def select_less(
513
539
  """
514
540
 
515
541
  def select_linked(
516
- execution_context: int | str | None = None, undo: bool | None = None
542
+ execution_context: int | str | None = None,
543
+ undo: bool | None = None,
544
+ /,
517
545
  ) -> None:
518
546
  """Select keyframes occurring in the same F-Curves as selected ones
519
547
 
@@ -522,7 +550,9 @@ def select_linked(
522
550
  """
523
551
 
524
552
  def select_more(
525
- execution_context: int | str | None = None, undo: bool | None = None
553
+ execution_context: int | str | None = None,
554
+ undo: bool | None = None,
555
+ /,
526
556
  ) -> None:
527
557
  """Select keyframes beside already selected ones
528
558
 
@@ -574,7 +604,9 @@ def stash(
574
604
  """
575
605
 
576
606
  def stash_and_create(
577
- execution_context: int | str | None = None, undo: bool | None = None
607
+ execution_context: int | str | None = None,
608
+ undo: bool | None = None,
609
+ /,
578
610
  ) -> None:
579
611
  """Store this action in the NLA stack as a non-contributing strip for later use, and create a new action
580
612
 
@@ -593,12 +625,14 @@ def unlink(
593
625
 
594
626
  :type execution_context: int | str | None
595
627
  :type undo: bool | None
596
- :param force_delete: Force Delete, Clear Fake User and remove copy stashed in this data-block's NLA stack
628
+ :param force_delete: Force Delete, Clear Fake User and remove copy stashed in this data-blocks NLA stack
597
629
  :type force_delete: bool | None
598
630
  """
599
631
 
600
632
  def view_all(
601
- execution_context: int | str | None = None, undo: bool | None = None
633
+ execution_context: int | str | None = None,
634
+ undo: bool | None = None,
635
+ /,
602
636
  ) -> None:
603
637
  """Reset viewable area to show full keyframe range
604
638
 
@@ -607,7 +641,9 @@ def view_all(
607
641
  """
608
642
 
609
643
  def view_frame(
610
- execution_context: int | str | None = None, undo: bool | None = None
644
+ execution_context: int | str | None = None,
645
+ undo: bool | None = None,
646
+ /,
611
647
  ) -> None:
612
648
  """Move the view to the current frame
613
649
 
@@ -616,7 +652,9 @@ def view_frame(
616
652
  """
617
653
 
618
654
  def view_selected(
619
- execution_context: int | str | None = None, undo: bool | None = None
655
+ execution_context: int | str | None = None,
656
+ undo: bool | None = None,
657
+ /,
620
658
  ) -> None:
621
659
  """Reset viewable area to show selected keyframes range
622
660