user: Describe P from the Blender manual or Python API, including usage steps and snippets.

assistant:  - [pivot_x (bpy.types.LineStyleGeometryModifier_2DTransform attribute)](bpy.types.LineStyleGeometryModifier_2DTransform.html#bpy.types.LineStyleGeometryModifier_2DTransform.pivot_x) - [pivot_y (bpy.types.LineStyleGeometryModifier_2DTransform attribute)](bpy.types.LineStyleGeometryModifier_2DTransform.html#bpy.types.LineStyleGeometryModifier_2DTransform.pivot_y) - [PivotConstraint (class in bpy.types)](bpy.types.PivotConstraint.html#bpy.types.PivotConstraint) - [pixel_aspect (bpy.types.MovieTrackingCamera attribute)](bpy.types.MovieTrackingCamera.html#bpy.types.MovieTrackingCamera.pixel_aspect) - [pixel_aspect_x (bpy.types.RenderSettings attribute)](bpy.types.RenderSettings.html#bpy.types.RenderSettings.pixel_aspect_x) - [pixel_aspect_y (bpy.types.RenderSettings attribute)](bpy.types.RenderSettings.html#bpy.types.RenderSettings.pixel_aspect_y) - [pixel_round_mode (bpy.types.SpaceUVEditor attribute)](bpy.types.SpaceUVEditor.html#bpy.types.SpaceUVEditor.pixel_round_mode) - [pixel_size (bpy.types.MaterialGPencilStyle attribute)](bpy.types.MaterialGPencilStyle.html#bpy.types.MaterialGPencilStyle.pixel_size) - [pixels (bpy.types.Image attribute)](bpy.types.Image.html#bpy.types.Image.pixels) - [planar_faces() (in module bmesh.ops)](bmesh.ops.html#bmesh.ops.planar_faces) - [plane_axis (bpy.types.ToolSettings attribute)](bpy.types.ToolSettings.html#bpy.types.ToolSettings.plane_axis) - [plane_axis_auto (bpy.types.ToolSettings attribute)](bpy.types.ToolSettings.html#bpy.types.ToolSettings.plane_axis_auto) - [plane_depth (bpy.types.Brush attribute)](bpy.types.Brush.html#bpy.types.Brush.plane_depth)   - [(bpy.types.ToolSettings attribute)](bpy.types.ToolSettings.html#bpy.types.ToolSettings.plane_depth) - [plane_height (bpy.types.Brush attribute)](bpy.types.Brush.html#bpy.types.Brush.plane_height) - [plane_inversion_mode (bpy.types.Brush attribute)](bpy.types.Brush.html#bpy.types.Brush.plane_inversion_mode) - [plane_offset (bpy.types.Brush attribute)](bpy.types.Brush.html#bpy.types.Brush.plane_offset) - [plane_orientation (bpy.types.ToolSettings attribute)](bpy.types.ToolSettings.html#bpy.types.ToolSettings.plane_orientation) - [plane_track_name (bpy.types.CompositorNodePlaneTrackDeform attribute)](bpy.types.CompositorNodePlaneTrackDeform.html#bpy.types.CompositorNodePlaneTrackDeform.plane_track_name) - [plane_trim (bpy.types.Brush attribute)](bpy.types.Brush.html#bpy.types.Brush.plane_trim) - [planes (imbuf.types.imbuf.types.ImBuf attribute)](imbuf.types.html#imbuf.types.imbuf.types.ImBuf.planes) - [plastic (bpy.types.SoftBodySettings attribute)](bpy.types.SoftBodySettings.html#bpy.types.SoftBodySettings.plastic) - [plasticity (bpy.types.SPHFluidSettings attribute)](bpy.types.SPHFluidSettings.html#bpy.types.SPHFluidSettings.plasticity) - [play() (aud.aud.Device method)](aud.html#aud.aud.Device.play)   - [(aud.aud.PlaybackManager method)](aud.html#aud.aud.PlaybackManager.play) - [play_mode (bpy.types.MeshCacheModifier attribute)](bpy.types.MeshCacheModifier.html#bpy.types.MeshCacheModifier.play_mode) - [play_rendered_anim() (in module bpy.ops.render)](bpy.ops.render.html#bpy.ops.render.play_rendered_anim) - [playback_fps_samples (bpy.types.PreferencesView attribute)](bpy.types.PreferencesView.html#bpy.types.PreferencesView.playback_fps_samples) - [playhead (bpy.types.ThemeCommonAnim attribute)](bpy.types.ThemeCommonAnim.html#bpy.types.ThemeCommonAnim.playhead) - [playhead_snap_distance (bpy.types.ToolSettings attribute)](bpy.types.ToolSettings.html#bpy.types.ToolSettings.playhead_snap_distance) - [ply_export() (in module bpy.ops.wm)](bpy.ops.wm.html#bpy.ops.wm.ply_export) - [ply_import() (in module bpy.ops.wm)](bpy.ops.wm.html#bpy.ops.wm.ply_import) - [Point (class in bpy.types)](bpy.types.Point.html#bpy.types.Point) - [point (freestyle.types.freestyle.types.StrokeVertex attribute)](freestyle.types.html#freestyle.types.freestyle.types.StrokeVertex.point) - [Point.index (in module bpy.types)](bpy.types.Point.html#bpy.types.Point.index) - [point_2d (freestyle.types.freestyle.types.Interface0D attribute)](freestyle.types.html#freestyle.types.freestyle.types.Interface0D.point_2d)   - [(freestyle.types.freestyle.types.SVertex attribute)](freestyle.types.html#freestyle.types.freestyle.types.SVertex.point_2d) - [point_3d (freestyle.types.freestyle.types.Interface0D attribute)](freestyle.types.html#freestyle.types.freestyle.types.Interface0D.point_3d)   - [(freestyle.types.freestyle.types.SVertex attribute)](freestyle.types.html#freestyle.types.freestyle.types.SVertex.point_3d) - [point_density (bpy.types.GreasePencilLengthModifier attribute)](bpy.types.GreasePencilLengthModifier.html#bpy.types.GreasePencilLengthModifier.point_density) - [point_normals() (in module bpy.ops.mesh)](bpy.ops.mesh.html#bpy.ops.mesh.point_normals) - [point_size_set() (in module gpu.state)](gpu.state.html#gpu.state.point_size_set) - [PointCache (class in bpy.types)](bpy.types.PointCache.html#bpy.types.PointCache) - [PointCache.info (in module bpy.types)](bpy.types.PointCache.html#bpy.types.PointCache.info) - [PointCache.is_baked (in module bpy.types)](bpy.types.PointCache.html#bpy.types.PointCache.is_baked) - [PointCache.is_baking (in module bpy.types)](bpy.types.PointCache.html#bpy.types.PointCache.is_baking) - [PointCache.is_frame_skip (in module bpy.types)](bpy.types.PointCache.html#bpy.types.PointCache.is_frame_skip) - [PointCache.is_outdated (in module bpy.types)](bpy.types.PointCache.html#bpy.types.PointCache.is_outdated) - [PointCache.point_caches (in module bpy.types)](bpy.types.PointCache.html#bpy.types.PointCache.point_caches) - [PointCacheItem (class in bpy.types)](bpy.types.PointCacheItem.html#bpy.types.PointCacheItem) - [PointCacheItem.info (in module bpy.types)](bpy.types.PointCacheItem.html#bpy.types.PointCacheItem.info) - [PointCacheItem.is_baked (in module bpy.types)](bpy.types.PointCacheItem.html#bpy.types.PointCacheItem.is_baked) - [PointCacheItem.is_baking (in module bpy.types)](bpy.types.PointCacheItem.html#bpy.types.PointCacheItem.is_baking) - [PointCacheItem.is_frame_skip (in module bpy.types)](bpy.types.PointCacheItem.html#bpy.types.PointCacheItem.is_frame_skip) - [PointCacheItem.is_outdated (in module bpy.types)](bpy.types.PointCacheItem.html#bpy.types.PointCacheItem.is_outdated) - [PointCaches (class in bpy.types)](bpy.types.PointCaches.html#bpy.types.PointCaches) - [pointcloud (bpy.types.GeometrySet attribute)](bpy.types.GeometrySet.html#bpy.types.GeometrySet.pointcloud) - [PointCloud (class in bpy.types)](bpy.types.PointCloud.html#bpy.types.PointCloud) - [pointcloud (in module bpy.context)](bpy.context.html#bpy.context.pointcloud) - [PointCloud.animation_data (in module bpy.types)](bpy.types.PointCloud.html#bpy.types.PointCloud.animation_data) - [PointCloud.attributes (in module bpy.types)](bpy.types.PointCloud.html#bpy.types.PointCloud.attributes) - [PointCloud.color_attributes (in module bpy.types)](bpy.types.PointCloud.html#bpy.types.PointCloud.color_attributes) | - [PointCloud.materials (in module bpy.types)](bpy.types.PointCloud.html#bpy.types.PointCloud.materials) - [PointCloud.points (in module bpy.types)](bpy.types.PointCloud.html#bpy.types.PointCloud.points) - [pointcloud_random_add() (in module bpy.ops.object)](bpy.ops.object.html#bpy.ops.object.pointcloud_random_add) - [POINTCLOUD_UL_attributes (class in bpy.types)](bpy.types.POINTCLOUD_UL_attributes.html#bpy.types.POINTCLOUD_UL_attributes) - [PointerProperty (class in bpy.types)](bpy.types.PointerProperty.html#bpy.types.PointerProperty) - [PointerProperty() (in module bpy.props)](bpy.props.html#bpy.props.PointerProperty) - [PointerProperty.fixed_type (in module bpy.types)](bpy.types.PointerProperty.html#bpy.types.PointerProperty.fixed_type) - [PointLight (class in bpy.types)](bpy.types.PointLight.html#bpy.types.PointLight) - [pointmerge() (in module bmesh.ops)](bmesh.ops.html#bmesh.ops.pointmerge) - [pointmerge_facedata() (in module bmesh.ops)](bmesh.ops.html#bmesh.ops.pointmerge_facedata) - [points (bpy.types.ThemeFontStyle attribute)](bpy.types.ThemeFontStyle.html#bpy.types.ThemeFontStyle.points) - [points_begin() (freestyle.types.freestyle.types.Interface1D method)](freestyle.types.html#freestyle.types.freestyle.types.Interface1D.points_begin) - [points_end() (freestyle.types.freestyle.types.Interface1D method)](freestyle.types.html#freestyle.types.freestyle.types.Interface1D.points_end) - [points_in_planes() (in module mathutils.geometry)](mathutils.geometry.html#mathutils.geometry.points_in_planes) - [points_per_curve (bpy.types.BrushCurvesSculptSettings attribute)](bpy.types.BrushCurvesSculptSettings.html#bpy.types.BrushCurvesSculptSettings.points_per_curve) - [points_u (bpy.types.Lattice attribute)](bpy.types.Lattice.html#bpy.types.Lattice.points_u) - [points_v (bpy.types.Lattice attribute)](bpy.types.Lattice.html#bpy.types.Lattice.points_v) - [points_w (bpy.types.Lattice attribute)](bpy.types.Lattice.html#bpy.types.Lattice.points_w) - [poke() (in module bmesh.ops)](bmesh.ops.html#bmesh.ops.poke)   - [(in module bpy.ops.mesh)](bpy.ops.mesh.html#bpy.ops.mesh.poke) - [pole_angle (bpy.types.KinematicConstraint attribute)](bpy.types.KinematicConstraint.html#bpy.types.KinematicConstraint.pole_angle) - [pole_merge_angle_from (bpy.types.CameraStereoData attribute)](bpy.types.CameraStereoData.html#bpy.types.CameraStereoData.pole_merge_angle_from) - [pole_merge_angle_to (bpy.types.CameraStereoData attribute)](bpy.types.CameraStereoData.html#bpy.types.CameraStereoData.pole_merge_angle_to) - [pole_subtarget (bpy.types.KinematicConstraint attribute)](bpy.types.KinematicConstraint.html#bpy.types.KinematicConstraint.pole_subtarget) - [pole_target (bpy.types.KinematicConstraint attribute)](bpy.types.KinematicConstraint.html#bpy.types.KinematicConstraint.pole_target) - [poll() (bpy.types.AssetShelf class method)](bpy.types.AssetShelf.html#bpy.types.AssetShelf.poll)   - [(bpy.types.GizmoGroup class method)](bpy.types.GizmoGroup.html#bpy.types.GizmoGroup.poll)   - [(bpy.types.KeyingSetInfo method)](bpy.types.KeyingSetInfo.html#bpy.types.KeyingSetInfo.poll)   - [(bpy.types.Macro class method)](bpy.types.Macro.html#bpy.types.Macro.poll)   - [(bpy.types.Menu class method)](bpy.types.Menu.html#bpy.types.Menu.poll)   - [(bpy.types.Node class method)](bpy.types.Node.html#bpy.types.Node.poll)   - [(bpy.types.NodeInternal class method)](bpy.types.NodeInternal.html#bpy.types.NodeInternal.poll)   - [(bpy.types.NodeTree class method)](bpy.types.NodeTree.html#bpy.types.NodeTree.poll)   - [(bpy.types.Operator class method)](bpy.types.Operator.html#bpy.types.Operator.poll)   - [(bpy.types.Panel class method)](bpy.types.Panel.html#bpy.types.Panel.poll) - [poll_drop() (bpy.types.FileHandler class method)](bpy.types.FileHandler.html#bpy.types.FileHandler.poll_drop) - [poll_file_object_drop() (in module bpy_extras.io_utils)](bpy_extras.io_utils.html#bpy_extras.io_utils.poll_file_object_drop) - [poll_instance() (bpy.types.Node method)](bpy.types.Node.html#bpy.types.Node.poll_instance)   - [(bpy.types.NodeInternal method)](bpy.types.NodeInternal.html#bpy.types.NodeInternal.poll_instance) - [poll_message_set() (bpy.types.Operator class method)](bpy.types.Operator.html#bpy.types.Operator.poll_message_set) - [poly_3d_calc() (in module mathutils.interpolate)](mathutils.interpolate.html#mathutils.interpolate.poly_3d_calc) - [poly_mapping (bpy.types.DataTransferModifier attribute)](bpy.types.DataTransferModifier.html#bpy.types.DataTransferModifier.poly_mapping) - [poly_order (bpy.types.FModifierGenerator attribute)](bpy.types.FModifierGenerator.html#bpy.types.FModifierGenerator.poly_order) - [polybuild_delete_at_cursor() (in module bpy.ops.mesh)](bpy.ops.mesh.html#bpy.ops.mesh.polybuild_delete_at_cursor) - [polybuild_dissolve_at_cursor() (in module bpy.ops.mesh)](bpy.ops.mesh.html#bpy.ops.mesh.polybuild_dissolve_at_cursor) - [polybuild_extrude_at_cursor_move() (in module bpy.ops.mesh)](bpy.ops.mesh.html#bpy.ops.mesh.polybuild_extrude_at_cursor_move) - [polybuild_face_at_cursor() (in module bpy.ops.mesh)](bpy.ops.mesh.html#bpy.ops.mesh.polybuild_face_at_cursor) - [polybuild_face_at_cursor_move() (in module bpy.ops.mesh)](bpy.ops.mesh.html#bpy.ops.mesh.polybuild_face_at_cursor_move) - [polybuild_split_at_cursor() (in module bpy.ops.mesh)](bpy.ops.mesh.html#bpy.ops.mesh.polybuild_split_at_cursor) - [polybuild_split_at_cursor_move() (in module bpy.ops.mesh)](bpy.ops.mesh.html#bpy.ops.mesh.polybuild_split_at_cursor_move) - [polybuild_transform_at_cursor() (in module bpy.ops.mesh)](bpy.ops.mesh.html#bpy.ops.mesh.polybuild_transform_at_cursor) - [polybuild_transform_at_cursor_move() (in module bpy.ops.mesh)](bpy.ops.mesh.html#bpy.ops.mesh.polybuild_transform_at_cursor_move) - [pop() (bpy.types.bpy_struct method)](bpy.types.bpy_struct.html#bpy.types.bpy_struct.pop)   - [(bpy.types.IDMaterials method)](bpy.types.IDMaterials.html#bpy.types.IDMaterials.pop)   - [(bpy.types.SpaceNodeEditorPath method)](bpy.types.SpaceNodeEditorPath.html#bpy.types.SpaceNodeEditorPath.pop)   - [(bpy.types.StripElements method)](bpy.types.StripElements.html#bpy.types.StripElements.pop)   - [(idprop.types.idprop.types.IDPropertyGroup method)](idprop.types.html#idprop.types.idprop.types.IDPropertyGroup.pop)   - [(in module gpu.matrix)](gpu.matrix.html#gpu.matrix.pop) - [pop_projection() (in module gpu.matrix)](gpu.matrix.html#gpu.matrix.pop_projection) - [popmenu_begin__internal() (bpy.types.WindowManager class method)](bpy.types.WindowManager.html#bpy.types.WindowManager.popmenu_begin__internal) - [popmenu_end__internal() (bpy.types.WindowManager class method)](bpy.types.WindowManager.html#bpy.types.WindowManager.popmenu_end__internal) - [popover() (bpy.types.UILayout method)](bpy.types.UILayout.html#bpy.types.UILayout.popover)   - [(bpy.types.WindowManager method)](bpy.types.WindowManager.html#bpy.types.WindowManager.popover) - [popover_begin__internal() (bpy.types.WindowManager class method)](bpy.types.WindowManager.html#bpy.types.WindowManager.popover_begin__internal) - [popover_end__internal() (bpy.types.WindowManager class method)](bpy.types.WindowManager.html#bpy.types.WindowManager.popover_end__internal) - [popover_group() (bpy.types.UILayout method)](bpy.types.UILayout.html#bpy.types.UILayout.popover_group) - [popup_menu() (bpy.types.WindowManager method)](bpy.types.WindowManager.html#bpy.types.WindowManager.popup_menu) - [popup_menu_pie() (bpy.types.WindowManager method)](bpy.types.WindowManager.html#bpy.types.WindowManager.popup_menu_pie) - [portable (in module bpy.app)](bpy.app.html#bpy.app.portable) - [Pose (class in bpy.types)](bpy.types.Pose.html#bpy.types.Pose) - [Pose.animation_visualization (in module bpy.types)](bpy.types.Pose.html#bpy.types.Pose.animation_visualization) - [Pose.bones (in module bpy.types)](bpy.types.Pose.html#bpy.types.Pose.bones) - [Pose.ik_param (in module bpy.types)](bpy.types.Pose.html#bpy.types.Pose.ik_param) - [pose_asset_select_bones() (in module bpy.ops.poselib)](bpy.ops.poselib.html#bpy.ops.poselib.pose_asset_select_bones) - [pose_bone (in module bpy.context)](bpy.context.html#bpy.context.pose_bone) - [pose_deform_type (bpy.types.Brush attribute)](bpy.types.Brush.html#bpy.types.Brush.pose_deform_type) - [pose_ik_segments (bpy.types.Brush attribute)](bpy.types.Brush.html#bpy.types.Brush.pose_ik_segments) - [pose_is_controller_aim (bpy.types.XrActionMapItem attribute)](bpy.types.XrActionMapItem.html#bpy.types.XrActionMapItem.pose_is_controller_aim) - [pose_is_controller_grip (bpy.types.XrActionMapItem attribute)](bpy.types.XrActionMapItem.html#bpy.types.XrActionMapItem.pose_is_controller_grip) - [pose_location (bpy.types.XrActionMapBinding attribute)](bpy.types.XrActionMapBinding.html#bpy.types.XrActionMapBinding.pose_location) - [pose_object (in module bpy.context)](bpy.context.html#bpy.context.pose_object) - [pose_offset (bpy.types.Brush attribute)](bpy.types.Brush.html#bpy.types.Brush.pose_offset) - [pose_origin_type (bpy.types.Brush attribute)](bpy.types.Brush.html#bpy.types.Brush.pose_origin_type) - [pose_position (bpy.types.Armature attribute)](bpy.types.Armature.html#bpy.types.Armature.pose_position) - [pose_rotation (bpy.types.XrActionMapBinding attribute)](bpy.types.XrActionMapBinding.html#bpy.types.XrActionMapBinding.pose_rotation) - [pose_smooth_iterations (bpy.types.Brush attribute)](bpy.types.Brush.html#bpy.types.Brush.pose_smooth_iterations) - [POSE_UL_selection_set (class in bpy.types)](bpy.types.POSE_UL_selection_set.html#bpy.types.POSE_UL_selection_set) - [PoseBone (class in bpy.types)](bpy.types.PoseBone.html#bpy.types.PoseBone) - [PoseBone.basename (in module bpy.types)](bpy.types.PoseBone.html#bpy.types.PoseBone.basename) - [PoseBone.bbone_custom_handle_end (in module bpy.types)](bpy.types.PoseBone.html#bpy.types.PoseBone.bbone_custom_handle_end) - [PoseBone.bbone_custom_handle_start (in module bpy.types)](bpy.types.PoseBone.html#bpy.types.PoseBone.bbone_custom_handle_start) - [PoseBone.bone (in module bpy.types)](bpy.types.PoseBone.html#bpy.types.PoseBone.bone) - [PoseBone.center (in module bpy.types)](bpy.types.PoseBone.html#bpy.types.PoseBone.center) - [PoseBone.child (in module bpy.types)](bpy.types.PoseBone.html#bpy.types.PoseBone.child) - [PoseBone.children (in module bpy.types)](bpy.types.PoseBone.html#bpy.types.PoseBone.children) - [PoseBone.children_recursive (in module bpy.types)](bpy.types.PoseBone.html#bpy.types.PoseBone.children_recursive) - [PoseBone.children_recursive_basename (in module bpy.types)](bpy.types.PoseBone.html#bpy.types.PoseBone.children_recursive_basename) - [PoseBone.color (in module bpy.types)](bpy.types.PoseBone.html#bpy.types.PoseBone.color) - [PoseBone.constraints (in module bpy.types)](bpy.types.PoseBone.html#bpy.types.PoseBone.constraints) - [PoseBone.head (in module bpy.types)](bpy.types.PoseBone.html#bpy.types.PoseBone.head) - [PoseBone.is_in_ik_chain (in module bpy.types)](bpy.types.PoseBone.html#bpy.types.PoseBone.is_in_ik_chain) - [PoseBone.length (in module bpy.types)](bpy