Reference/Release Notes/3.3/Python API

= Python API & Text Editor =

Background Jobs
New possibilities to get the status of rendering & baking jobs in Python :
 * New `bpy.app.is_job_running(job_type)` function, which takes `"RENDER"`, `"RENDER_PREVIEW"`, or `"OBJECT_BAKE"` as `job_type` parameter. It returns a boolean to indicate whether a job of that type is currently running. It is intentional that only a subset of all of Blender's job types are supported here. That way, those "hidden" jobs are kept as they are currently: an internal detail of Blender, rather than a public, reliable part of the API. In the future, the list of supported job types can be expanded on a case-by-case basis, when there is a clear and testable use case.
 * New app handlers `object_bake_pre`, object_bake_complete`, object_bake_canceled` that signal respecively that an object baking job has started, completed, or was cancelled.

Other Additions

 * `bpy.props.StringProperty` supports a `search` & `search_options` arguments to support showing candidates when editing string properties.
 * XR: Expose OpenXR user paths in XR event data (`XrEventData.user_path/user_path_other`).
 * ID Management: Add utility functions for getting a list of IDs referenced by a given one. Here's an example use case:
 * Add VSE API function to select displayed meta strip.
 * Add `mathutils.Matrix.is_identity` read-only attribute to check for an identity matrix.
 * Add `FCurveKeyframePoints.clear` to delete all keyframe points of an FCurve.
 * Add Event `type_prev` & `value_prev` members.
 * Add Event `type_prev` & `value_prev` members.

Other Changes

 * The `blend_render_info` module now supports reading Z-standard compressed blend files..
 * The API for adding context menu entries has changed. Instead of manually registering `WM_MT_button_context`, draw functions should be appended to `UI_MT_button_context_menu`, which is registered by Blender itself. The old API is still available for compatibility, but is deprecated and will be removed in a future release, therefore addons should update to the new API.

Breaking Changes

 * Strip properties `frame_start`, `frame_offset_start` and `frame_offset_end` are now floating point.
 * `SoundSequence.pitch` is replaced with `speed_factor` property. This property is available also for other non-effect strips to control their playback speed.